Python pandas数据框根据条件分组

Posted

技术标签:

【中文标题】Python pandas数据框根据条件分组【英文标题】:Python pandas dataframe group by based on a condition 【发布时间】:2015-09-26 23:57:15 【问题描述】:

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

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

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

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

它会打印出一些 True 和 False 值。

【问题讨论】:

【参考方案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

【讨论】:

以上是关于Python pandas数据框根据条件分组的主要内容,如果未能解决你的问题,请参考以下文章

python--pandas分组聚合

在 Python/Pandas 中执行不同操作的多列有条件地聚合分组数据

对 Pandas 数据框逐元素应用条件

Python Pandas Dataframe - 基于条件的分组和平均值

如何根据某些分组列取消pandas数据框? [复制]

python:根据条件对时间序列数据进行分组或拆分