我得到了一个这样的 Dataframe :| A类|B|C级|| - ------|- ------|- ------|| 1个|1个|1个|| 第二章|第二章|第二章|| 三个|三个|三个|| 四个|1个|1个|我想把这三列'合并'成一个D列,规则是:如果行中至少有一个“1”,则D的值为“1”,否则为“0”。如何实现?
m528fe3b1#
使用DataFrame.eq比较值,使用DataFrame.any检查每行至少一个True,最后将布尔掩码转换为integer:
DataFrame.eq
DataFrame.any
True
integer
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
1条答案
按热度按时间m528fe3b1#
使用
DataFrame.eq
比较值,使用DataFrame.any
检查每行至少一个True
,最后将布尔掩码转换为integer
:详情: