我有一个这样的数据框:
A B C
1 1 1
2 2 2
3 3 3
4 1 1
我想“合并”三列以形成D列,规则是:如果行中至少有一个“ 1”,则D的值为“ 1”,否则为“ 0”。我该如何实现?
答案 0 :(得分:1)
使用DataFrame.eq
与DataFrame.any
比较值,检查每行至少一个True
,最后将布尔掩码转换为integer
s:
df['D'] = df.eq(1).any(axis=1).astype(int)
print (df)
A B C D
0 1 1 1 1
1 2 2 2 0
2 3 3 3 0
3 4 1 1 1
详细信息:
print (df.eq(1))
A B C
0 True True True
1 False False False
2 False False False
3 False True True
print (df.eq(1).any(axis=1))
0 True
1 False
2 False
3 True
dtype: bool