【发布时间】:2021-11-30 00:47:33
【问题描述】:
我有一个简单的 python 3.8 DataFrame,它有 8 列(简单地标记为 0、1、2 等),大约有 8 列。 3500 行。我想要这个 DataFrame 的一个子集,其中每行至少有 2 列高于 1。我不希望单独检查每一列,但能够检查所有列。我知道我可以使用 .any(1) 检查所有列,但我需要至少有 2 列满足阈值,而不仅仅是一个。任何帮助,将不胜感激。示例代码如下:
import pandas as pd
df = pd.DataFrame({0:[1,1,1,1,100],
1:[1,3,1,1,1],
2:[1,3,1,1,4],
3:[1,1,1,1,1],
4:[3,4,1,1,5],
5:[1,1,1,1,1]})
我认为稍后进行排序/过滤的最简单方法是在 df[9] 末尾创建另一个包含计数的列:
df[9] = df.apply(lambda x: x.count() if x > 2, axis=1)
这段代码不起作用,但我感觉它很接近?
【问题讨论】:
标签: python-3.x pandas dataframe