我需要根据其他列的情况,为新列分配值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