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)]
假设我有以下数据框:
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)]