我想获取一个指标的总和、平均值和计数
df.groupby(['id', 'pushid']).agg({"sess_length": [ np.sum, np.mean, np.count]})
但是我得到了"module 'numpy' has no attribute 'count'"的错误,我已经尝试了不同的表达计数函数的方式,但是无法使其正常工作。我该如何将聚合记录计数与其他指标一起使用?
df = pd.DataFrame(
{"id": list("ccdef"), "pushid": list("aabbc"),
"sess_length": [10, 20, 30, 40, 50]}
)
df.groupby(["id", "pushid"]).agg({"sess_length": ["sum", "mean", "count"]})
这将输出:
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
只需使用 np.size
不确定为什么答案需要是30个字符长,当答案很直接明了时。
np.count_nonzero
看起来不太合适。 - Rafsdf.groupby(['id', 'pushid']).agg({"sess_length": [ np.sum, np.mean, np.**size**]})
我想你的意思是:
df.groupby(['id', 'pushid']).agg({"sess_length": [ 'sum', 'count','mean']})
如pandas文档中所述,您可以使用字符串参数,例如'sum'、'count'等来进行聚合操作。说实话,这是更可取的做法。
len
吗?不确定你所说的表达计数函数的不同方式是什么意思 - 正如你所看到的,numpy
显然没有np.count
。这个函数预期要做什么? - Nathannp.size
。 - jxcsize
会将nan
计算为一行,而count
则会将nan
排除在外。 - YJZ