我有一个DataFrame,其中包含三列Date,Advertiser和ID。我将数据分组,以查看某些广告商的列数是否太小(例如,当count()小于500时)。然后我想删除组表中的那些行。
df.groupby(['Date','Advertiser']).ID.count()
结果是这样的:
Date Advertiser
2016-01 A 50000
B 50
C 4000
D 24000
2016-02 A 6800
B 7800
C 123
2016-03 B 1111
E 8600
F 500
我想要一个结果:
Date Advertiser
2016-01 A 50000
C 4000
D 24000
2016-02 A 6800
B 7800
2016-03 B 1111
E 8600
跟进问题:
如果我想根据日期类别中的总计数()来过滤groupby中的行,那该怎么办?例如,我想count()获取大于15000的日期。我想要的表喜欢这个:
Date Advertiser
2016-01 A 50000
B 50
C 4000
D 24000
2016-02 A 6800
B 7800
C 123
答案 0 :(得分:4)
groupby
之后有一个Series对象,可以使用链式 lambda 过滤器根据值进行过滤:
df.groupby(['Date','Advertiser']).ID.count()[lambda x: x >= 500]
#Date Advertiser
#2016-01 A 50000
# C 4000
# D 24000
#2016-02 A 6800
# B 7800
#2016-03 B 1111
# E 8600
# F 500