【问题标题】:Python pandas dataframe group by based on a conditionPython pandas数据框根据条件分组
【发布时间】:2015-09-26 23:57:15
【问题描述】:
我的问题很简单,我有一个数据框,我 groupby 基于列的结果并得到如下大小:
df.groupby('column').size()
现在的问题是我只想要尺寸大于 X 的那些。我想知道我是否可以使用 lambda 函数或类似的东西来做到这一点?我已经试过了:
df.groupby('column').size() > X
它会打印出一些 True 和 False 值。
【问题讨论】:
标签:
python
pandas
group-by
conditional-statements
dataframe
【解决方案1】:
试试这个代码:
df.groupby('column').filter(lambda group: group.size > X)
【解决方案2】:
分组的结果是一个常规的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