Pandas分组、过滤并将输出放入lis

2024-04-24 13:41:35 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,我对这个函数有一个问题,我想在我的代码中实现。假设我正在处理这个数据帧。在

df = pd.DataFrame([[100, 1],[100, 1],[200, 2],[200, 2],[200, 2]], columns=['a','b'])

现在我想先计算列“a”的唯一条目,然后过滤选择列“a”中大于3的元素

^{pr2}$

所需的输出是一个列表,其中只包含满足过滤条件的“a”系列元素(名为“filter”),因此从这个新特性中可以过滤回初始过滤器,这样我将只保留第2、3、4行(从零开始计数)。在

我希望我的意图是明确的,但当然,如果我从错误的角度处理问题,任何建议都是受欢迎的。在


Tags: columns数据函数代码元素过滤器dataframedf
2条回答
In [1]: import pandas as pd

In [2]: df = pd.DataFrame([[100, 1],[100, 1],[200, 2],[200, 2],[200, 2]], columns=['a','b'])

In [3]: pd.concat([i[1] for i in df.groupby('a') if len(i[1]) >2 ])
Out[3]: 
     a  b
2  200  2
3  200  2
4  200  2

IIUC,我认为你没有足够的测试数据来测试“大于3”,但是你可以测试“大于2”。在

df[df.groupby('a')['a'].transform('count').gt(2)]

输出:

^{pr2}$

相关问题 更多 >