我想将名称列中的名称更改为default
,仅适用于符合特定条件的行(name == None
和weight == 1
)。你可以看到权重可以是10,但我不想更改10的权重名称。这是一个小例子数据框:
post name weight response
blah1 None 1 yes
blah2 None 10 no
blah3 Annie 1 yes
如何以简单的方式实现这一目标?
答案 0 :(得分:4)
快速,稳固,强大的Panda-esque解决方案:
df.loc[(df.name == None) & (df.weight == 1), 'name'] = 'defaut'
答案 1 :(得分:3)
您可以使用update
列的填充版本'name'
数据框。
df.update(df.name[df.weight.eq(1)].fillna('default'))
df
post name weight response
0 blah1 default 1 yes
1 blah2 None 10 no
2 blah3 Annie 1 yes
答案 2 :(得分:2)
np.where((df['name'] == 'None') & (df['weight'] == 1), 'default', df['name'])