2016-11-09 3 views
1

Я хотел бы обновить поля в моем dataframe:значение обновления в панде dataframe

df = pd.DataFrame([ 
    {'Name': 'Paul', 'Book': 'Plane', 'Cost': 22.50}, 
    {'Name': 'Jean', 'Book': 'Harry Potter', 'Cost': 2.50}, 
    {'Name': 'Jim', 'Book': 'Sponge bob', 'Cost': 5.00} 
]) 

      Book Cost Name 
0   Plane 22.5 Paul 
1 Harry Potter 2.5 Jean 
2 Sponge bob 5.0 Jim 

Изменения имена с этой строкой:

{"Paul": "Paula", "Jim": "Jimmy"} 

, чтобы получить этот результат:

  Book Cost Name 
0   Plane 22.5 Paula 
1 Harry Potter 2.5 Jean 
2 Sponge bob 5.0 Jimmy 

Есть идеи ?

ответ

1

Я думаю, что вам нужно replace по dictionaryd:

d = {"Paul": "Paula", "Jim": "Jimmy"} 
df.Name = df.Name.replace(d) 
print (df) 
      Book Cost Name 
0   Plane 22.5 Paula 
1 Harry Potter 2.5 Jean 
2 Sponge bob 5.0 Jimmy 

Другое решение с map и combine_first - map возвращение NaN где не совпадают, поэтому необходимо заменить его исходные значения:

df.Name = df.Name.map(d).combine_first(df.Name) 
print (df) 
      Book Cost Name 
0   Plane 22.5 Paula 
1 Harry Potter 2.5 Jean 
2 Sponge bob 5.0 Jimmy 
Смежные вопросы