Skip to main content
 首页 » 编程设计

python之如何在 python 数据帧中的多个列之间执行 'OR'

2025年05月04日12qq78292959

我的 df:

No  A   B   C  D 
1   1   1   0  1 
2   1   1   1  0 
3   1   0   1  1 
4   1   1   1  1 

我想执行 A 或 B 或 C 或 D,并将结果写在一列中。

No  A   B   C  D Result 
1   1   1   0  1 1 
2   1   1   1  0 1 
3   1   0   1  1 1 
4   1   1   1  1 1 
... 

所以想法是,即使 A、B、C 或 D 中存在一个“1”,结果也是“1”。

请您参考如下方法:

一个想法是使用 DataFrame.any每行至少测试一个 1 或每行使用 max:

#if No is column 
df['Result'] = df.iloc[:, 1:].any(axis=1).astype(int) 
#if No is index 
#df['Result'] = df.any(axis=1).astype(int) 

如果另外一些列:

df['Result'] = df[['A','B','C','D']].any(axis=1).astype(int) 

或者:

df['Result'] = df[['A','B','C','D']].max(axis=1) 


print (df) 
 
   No  A  B  C  D  Result 
0   1  1  1  0  1       1 
1   2  1  1  1  0       1 
2   3  1  0  1  1       1 
3   4  1  1  1  1       1