如何更改满足熊猫特定条件的行的值?

时间:2017-06-19 23:47:54

标签: python pandas dataframe null

我想将名称列中的名称更改为default,仅适用于符合特定条件的行(name == Noneweight == 1)。你可以看到权重可以是10,但我不想更改10的权重名称。这是一个小例子数据框:

post   name  weight  response
blah1  None       1       yes
blah2  None      10        no
blah3  Annie      1       yes

如何以简单的方式实现这一目标?

3 个答案:

答案 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'])