Python Pandas:测试DataFrame的任何列是否满足条件

Mat*_*ias 6 python dataframe pandas

我有一个包含大量列的DataFrame.现在我有条件测试其中一些列,如果任何列集不同于零.代码看起来很难看,我想知道是否有更优雅的方法将该条件应用于列的子集?我目前的代码是:

df['indicator'] = (
    (df['col_1'] != 0) | 
    (df['col_2'] != 0) | 
    (df['col_3'] != 0) | 
    (df['col_4'] != 0) | 
    (df['col_5'] != 0)
)
Run Code Online (Sandbox Code Playgroud)

我正在寻找像这样的伪代码:

columns = ['col_1', 'col_1', 'col_2', 'col_3', 'col_4', 'col_5']
df['indicator'] = df.any(columns, lambda value: value != 0)
Run Code Online (Sandbox Code Playgroud)

piR*_*red 7

ne是方法的形式!=.我使用它,以便流水线any看起来更好.我any(axis=1)用来查找连续是否为真.

df['indicator'] = df[columns].ne(0).any(axis=1)
Run Code Online (Sandbox Code Playgroud)