如何选择所有包含*在选定列中的值大于阈值的行?

问题描述 投票:0回答:1

我正在尝试执行与this question中相同的操作,但是我有一个字符串类型的列,需要将其保留在数据框中,以便可以识别出哪些行。 (我想我可以按索引执行此操作,但是我希望能够节省一个步骤。)是否有一种方法在使用.any()时不对列进行计数,而是将其保留在结果数据框中?谢谢!

这是在所有列上加上文字的代码:

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

这是我现在正在使用的硬编码版本:

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

这对我来说似乎有点笨拙,所以我想知道是否有更好的方法。

python pandas filter any
1个回答
0
投票

您可以使用.select_dtype选择所有内容,例如数字列:

df[df.select_dtype(include='number').gt(threshold).any(axis=1)]

或带有iloc的连续列块:

df[df.iloc[:,3:6].gt(threshold).any(axis=1)]

如果要选择一些随机的列列表,最好通过硬编码列表来解决。

© www.soinside.com 2019 - 2024. All rights reserved.