Pandas groupby,过滤并将输出放入列表中

Pandas groupby, filter and put the output in a list

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

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

现在我想先计算列 "a" 的唯一条目,然后过滤 select 仅列 "a" 中大于 3

的那些元素
group=df.groupby('a').count()
filter=group['b'].isin([3])

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

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

IIUC,我认为你没有足够的测试数据来测试"bigger than 3",但是你可以测试"bigger than 2"。

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

输出:

     a  b
2  200  2
3  200  2
4  200  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