我正在尝试获取指标的总和,均值和计数
df.groupby(['id', 'pushid']).agg({"sess_length": [ np.sum, np.mean, np.count]})
但是我得到“模块'numpy'没有属性'count'”,并且我尝试了多种表达count函数的方法,但无法使其正常工作。如何仅将记录总数与其他指标一起计算?
答案 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**]})