【发布时间】:2018-02-04 10:17:16
【问题描述】:
假设我在 Pandas 中有一个名为 df 的数据框,如下所示:
id x y
1 10 A
2 12 B
3 10 B
4 4 C
5 9 A
6 15 A
7 6 B
现在我想按 y 列对数据进行分组,并获得每个组的 2 个最大值 (x) 的平均值,看起来像这样
y
A (10+15)/2 = 12.5
B (12 + 10)/2 = 11
C 4
如果我尝试使用df.groupby('y')['x'].nlargest(2),我会得到
y id
A 1 10
6 15
B 2 12
3 10
C 4 4
类型为pandas.core.series.Series。因此,当我执行df.groupby('y')[x].nlargest(2).mean() 时,我得到所有数字的平均值,而不是 3 个平均值,每个组一个平均值。最后,我想绘制组在 x 轴上和在 y 轴上的意思的结果,所以我猜我也应该删除列 'id' 吗?
有谁知道如何解决这个问题?谢谢你的帮助!
【问题讨论】:
标签: python pandas pandas-groupby