Pandas:选择任何列通过条件的行

Luc*_*den 3 python pandas jupyter

如何返回其中一列通过给定条件的所有行,而不指定任何列?

我的情况如下:

import pandas as pd
print(pd.__version__) # 1.5.2

x = [ 1, 2, 3 ]
y = [ 4, 5, 6 ]
z = [ 7, 8, 9 ]

df = pd.DataFrame({
  "a": x,
  "b": y,
  "c": z
})
Run Code Online (Sandbox Code Playgroud)

我知道您可以在给定列上应用条件,以便返回该列通过条件的所有行。

df.loc[df.a > 1]
# or
df.loc[df["a"] > 1]
Run Code Online (Sandbox Code Playgroud)

这会输出:

A C
2 5 8
3 6 9

我想从数据框中选择所有行,其中任何列都通过给定条件。

df.loc["*" > 1]
Run Code Online (Sandbox Code Playgroud)

哪个应该输出:

A C
1 4 7
2 5 8
3 6 9

我已尝试以下操作,但它将所有不匹配的值设置为 NaN:

df[df > 1]
Run Code Online (Sandbox Code Playgroud)

输出:

A C
4 7
2 5 8
3 6 9

moz*_*way 7

使用带有any布尔索引的矢量代码:

df[df.gt(1).any(axis=1)]
Run Code Online (Sandbox Code Playgroud)