【问题标题】:Filter dataframe by group size按组大小过滤数据框
【发布时间】:2021-02-14 02:03:17
【问题描述】:

我有一个要根据组大小过滤的数据框。例如,我想按“名称”和“日期”分组,并获取大小大于 2 的组。

   Name     Date Symbol
0  Ajay  2018_Q1     AA
1  Ajay  2018_Q1     BB
2  Ajay  2018_Q1     CC
3  Ajay  2018_Q1     DD
4  Ajay  2019_Q1     AA
5  Faye  2019_Q1     DD
6  Faye  2019_Q1     AA
7  Faye  2019_Q1     ZZ
8  Faye  2018_Q1     AA
9  Faye  2018_Q1     EE

所以输出数据框应该是这样的:

   Name     Date Symbol
0  Ajay  2018_Q1     AA
1  Ajay  2018_Q1     BB
2  Ajay  2018_Q1     CC
3  Ajay  2018_Q1     DD
5  Faye  2019_Q1     DD
6  Faye  2019_Q1     AA
7  Faye  2019_Q1     ZZ

我如何做到这一点?

【问题讨论】:

标签: python pandas group-by


【解决方案1】:

可以使用filter的方法:

df.groupby(['Name', 'Date']).filter(lambda x: x['Symbol'].size > 2)

或

df.groupby(['Name', 'Date']).filter(lambda x: x.shape[0] > 2)

输出:

   Name     Date Symbol
0  Ajay  2018_Q1     AA
1  Ajay  2018_Q1     BB
2  Ajay  2018_Q1     CC
3  Ajay  2018_Q1     DD
5  Faye  2019_Q1     DD
6  Faye  2019_Q1     AA
7  Faye  2019_Q1     ZZ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2023-02-16
    相关资源
    最近更新 更多