Pandas DataFrame删除groupby中的行

时间:2017-03-23 03:37:16

标签: python pandas dataframe

我有一个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

1 个答案:

答案 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