我有一个数据框,我想根据组大小进行过滤。例如,我想按“名称”和“日期”分组并获取大小大于 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
我如何实现这一目标?
答案 0 :(得分:2)
您可以使用方法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