下面是我的数据框架。
<表类>
b
tbody><<tr>12 0 121 0 0 表类>
如果需要测试所有列比较0
和测试DataFrame.all
是否每行所有值设置yes
, 'no'由numpy.where
:
df['c'] = np.where(df.eq(0).all(axis=1), 'no','yes')
print (df)
a b c
0 12 0 yes
1 1 21 yes
2 0 0 no
另一个想法是测试如果至少有一个值不是0
byDataFrame.any
,则使用映射:
df['c'] = df.ne(0).any(axis=1).map({False: 'no',True:'yes'})
如果有多个列并且只需要测试a,b
列:
cols = ['a','b']
df['c'] = np.where(df[cols].eq(0).all(axis=1), 'no','yes')
这是我能想到的最简单的解决方案:
import numpy as np
df['c'] = np.where( (df['a']>0) | (df['b']>0), 'yes', 'no')