Pandas:选择任何列通过条件的行[重复]

bjp0bcyl  于 2023-03-16  发布在  其他
关注(0)|答案(3)|浏览(99)

此问题在此处已有答案

How to filter a Pandas dataframe to keep entire rows/colums if a criterium is fullfilled?(1个答案)
2天前关闭。

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

我的情况如下:

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
})

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

df.loc[df.a > 1]
# or
df.loc[df["a"] > 1]

它将输出:
| 项目a|B|(c)秘书长的报告|
| - ------|- ------|- ------|
| 第二章|五个|八个|
| 三个|六个|九|
我想从数据框中选择所有行,其中任何列都符合给定条件。

df.loc["*" > 1]

其应输出:
| 项目a|B|(c)秘书长的报告|
| - ------|- ------|- ------|
| 1个|四个|七|
| 第二章|五个|八个|
| 三个|六个|九|
我尝试了以下方法,但它将所有不匹配的值设置为NaN:

df[df > 1]

输出:
| 项目a|B|(c)秘书长的报告|
| - ------|- ------|- ------|
| 钠氮|四个|七|
| 第二章|五个|八个|
| 三个|六个|九|

ef1yzkbh

ef1yzkbh1#

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

df[df.gt(1).any(axis=1)]
mefy6pfw

mefy6pfw2#

以下链接提供了答案:

df[df.apply(lambda row: row.ge(1).any(), axis=1)]
5t7ly7z5

5t7ly7z53#

您可以使用以下命令:

df[(df > 1).any(axis=1)]

相关问题