首页 > 解决方案 > 根据现有列分配真/假条件

问题描述

验证条件后,我需要分配一个 True/False 值。具体来说,我有数据框

col1      col2    col3   col4   col5    col6   col7    col8   col9
Number1   True   False   True   False   True   False   True   False
Number2   False  False   False  False   False  False   False  False
Number3   True   False   False  False   False  False   False  False
Number4   False  False   False  False   False  True    False  False

我需要根据 True/False 值创建一个新列。如果至少一个值为 True,则在新列中分配 True;否则,如果所有值都为 False,则分配 False。

从上面的例子中,我应该有:

col1      col2    col3   col4   col5    col6   col7    col8   col9     col10
Number1   True   False   True   False   True   False   True   False    True
Number2   False  False   False  False   False  False   False  False    False
Number3   True   False   False  False   False  False   False  False    True
Number4   False  False   False  False   False  True    False  False    True

我试过了

if (df['COL1'], df['COL2'], df['COL3'], df['COL4'], df['COL5'], df['COL6'], df['COL7'], df['COL8'], df['COL9']).any():
                df[index,'COL10'] = True
            else:
                df[index,'COL10'] = False

但这会分配所有 True 值。

你能帮我得到正确的输出吗?非常感谢

标签: pythonpandas

解决方案


做就是了any

df.loc[:,'col2':].any(1)
0     True
1    False
2     True
3     True
dtype: bool

#df['col10']=df.loc[:,'col2':].any(1)

推荐阅读