Python pandas 数据帧根据条件分组

Python pandas dataframe group by based on a condition

我的问题很简单,我有一个数据框,我 groupby 基于列的结果并得到这样的大小:

df.groupby('column').size()

现在的问题是我只想要大小大于 X 的那些。我想知道我是否可以使用 lambda 函数或类似的函数来做到这一点?我已经试过了:

df.groupby('column').size() > X

并打印出一些 True 和 False 值。

分组后的结果是一个常规的DataFrame,所以照常过滤结果即可:

 import pandas as pd

 df = pd.DataFrame({'a': ['a', 'b', 'a', 'a', 'b', 'c', 'd']})
 after = df.groupby('a').size()
 >> after
 a
 a    3
 b    2
 c    1
 d    1
 dtype: int64

 >> after[after > 2]
 a
 a    3
 dtype: int64

试试这个代码:

df.groupby('column').filter(lambda group: group.size > X)