2017-06-19 163 views
1

我想仅将名称列中的名称更改为default,以便仅符合特定条件的行(name == Noneweight == 1)。正如你所看到的重量可以是10,但我不希望更改名字的10砝码这里是一个小例子,数据帧:如何更改满足熊猫特定条件的行的值?

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

我怎么能以简单的方式实现这一目标?

回答

4

快速,扎实,稳健的熊猫式的解决方案:

df.loc[(df.name == None) & (df.weight == 1), 'name'] = 'defaut' 
+1

这是一个很好的答案。 – piRSquared

2
np.where((df['name'] == 'None') & (df['weight'] == 1), 'default', df['name']) 
3

您可以用填充在'name'列的版本update数据帧。

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 
+1

这是一个很好的答案 –

相关问题