【发布时间】:2019-11-17 01:10:52
【问题描述】:
我有一个表单的数据框:
import pandas as pd
df = pd.DataFrame(None,columns= ['Name','Age','Asset'])
df = df.append({'Name':'John','Age':10,'Asset':'Bike'},ignore_index=True)
df = df.append({'Name':'Sarah','Age':17,'Asset':'Laptop'},ignore_index=True)
df = df.append({'Name':'Noah','Age':14,'Asset':'Book'},ignore_index=True)
df
Name Age Asset
0 John 10 Bike
1 Sarah 17 Laptop
2 Noah 14 Book
现在我想拿一本字典{'Name' :'John','Age':11,'Asset' :'Phone'} 并找到名为 John 的 df 行,将年龄更改为 11 并将资产更改为“电话”。假设数据框的每一列都是字典中的一个键。
由于 iloc 检索到一行,我认为这会起作用,
df.loc[df['Name'] == 'John'] = {'Name' :'John','Age':11,'Asset' :'Phone'}
但是,这不起作用,您需要使用列表进行更新。
用字典更新数据框行的有效方法是什么?
【问题讨论】:
-
df.loc[df['Name'] == 'John'] = pd.Series({'Name' :'John','Age':11,'Asset' :'Phone'})? -
@QuangHoang 用 Nan 更新姓名、年龄和资产
标签: python-3.x pandas dataframe dictionary