熊猫Groupby AGG-如何获得计数?

时间:2019-04-09 18:30:32

标签: python pandas group-by aggregate

我正在尝试获取指标的总和,均值和计数

df.groupby(['id', 'pushid']).agg({"sess_length": [ np.sum, np.mean, np.count]})

但是我得到“模块'numpy'没有属性'count'”,并且我尝试了多种表达count函数的方法,但无法使其正常工作。如何仅将记录总数与其他指标一起计算?

3 个答案:

答案 0 :(得分:1)

您可以使用字符串代替函数,如下所示:

In [16]: df = pd.DataFrame({"id": list("ccdef"), 
                            "pushid": list("aabbc"),
                            "sess_length": [10, 20, 30, 40, 50]})

In [17]: df.groupby(['id', 'pushid']).agg({"sess_length": [ 'sum', 'mean', 'count']})

Out[17]:           sess_length
                           sum mean count
         id pushid
         c  a               30   15     2
         d  b               30   30     1
         e  b               40   40     1
         f  c               50   50     1

答案 1 :(得分:0)

我想你是说:

df.groupby(['id', 'pushid']).agg({"sess_length": [ 'sum', 'count','mean']})

documentation of pandas中所述,您可以使用字符串参数,例如'sum','count'。 TBH这是进行这些聚合的更可取的方法。

答案 2 :(得分:0)

这可能有效:

df.groupby(['id', 'pushid']).agg({"sess_length": [ np.sum, np.mean, np.**size**]})