我怎样才能找到一个月内n个最大值的平均值,但天必须是唯一的?
我确实也有一个时间戳列,但我猜制作它们的列是一种方式?
我试了df['peak_avg'] = df.groupby(['month', 'day'])['value'].transform(lambda x: x.nlargest(3).mean())
天,但这是最大的三天的平均时间.
month | day | value | peak_avg (expected) |
---|---|---|---|
1 | 1 | 35 | 35 |
1 | 1 | 30 | 35 |
2 | 1 | 34 | 28.5 |
2 | 2 | 23 | 28.5 |
3 | 1 | 98 | 97 |
3 | 2 | 96. | 97 |