我的 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
