通过筛选其他列创建新列



我需要根据其他列的情况,为新列分配值1或0。我有大约30列具有二进制值(1或0(,但也有其他具有数值、连续值(例如200(的变量。我想避免写一个有很多OR的逻辑条件,所以我想知道是否有一种简单快捷的方法。例如,创建一个列名为的列表,如果对应行的所有列中至少有一个值1,则为新列指定1。

示例:

a1 b1 d4    ....
1   0  1
0   0  1
0   0  0
...

预期:

a1 b1 d4    .... New  
1   0  1          1
0   0  1          1
0   0  0          0
...

非常感谢您的帮助

这里有一个简单的解决方案:

df = pd.DataFrame({'a1':[1,0,0,1], 'b1':[0,0,0,1], 'd4':[1,1,0,0], 'num':[12,-2,0,3]})
df['New'] = df[['a1','b1','d4']].any(1).astype('int')
df
a1  b1  d4  num New
0   1   0   1   12  1
1   0   0   1   -2  1
2   0   0   0   0   0
3   1   1   0   3   1

最新更新