pandas loc 有多个 or 条件

pandas loc with multiple or conditions

假设我有以下数据框:

x = pd.DataFrame(
    {
        'A': np.random.normal(0, 1, 100),
        'B': np.random.normal(0, 1, 100), 
        'C': np.random.normal(0, 1, 100), 
        'D': np.random.normal(0, 1, 100), 
        'E': np.random.normal(0, 1, 100) 
    }
)

我只想使用 loc 和 select 那些特定值小于 0.5 的行。 我知道我可以这样做:

df.loc[df.A < 0.5, :]

对于多列,我可以这样做:

df.loc[(df.A < 0.5) | (df.B < 0.5) | (df.C < 0.5), :]

我的问题是:当您有超过 10 列时,是否有更好的方法在 loc 中写入条件。我想我可以按照上面显示的方式来做,但它变得非常乏味,我希望有更好的方法。

您可以使用

df.loc[(df[['A', 'B', 'C']] < 0.5).any(axis=1)]