首页 > 解决方案 > 数据框合并列操作

问题描述

我有一个这样的数据框:

A    B     C
1    1     1
2    2     2
3    3     3
4    1     1

我想将三列“合并”形成一个 D 列,规则是:如果行中至少有一个“1”,则 D 的值为“1”,否则为“0”。我怎样才能实现它?

标签: pythonpandasdataframe

解决方案


用于DataFrame.eq比较值,DataFrame.any用于检查每行至少一个True,最后将布尔掩码转换为integers:

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

推荐阅读