基于另一个多数据框架列的新列



下面是我的数据框架。

<表类> b tbody><<tr>12012100

如果需要测试所有列比较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

另一个想法是测试如果至少有一个值不是0byDataFrame.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')

最新更新