gpt4 book ai didi

python - 在 pandas 中用 group by 取最后 n 个元素的平均值

转载 作者:行者123 更新时间:2023-11-28 20:56:27 27 4
gpt4 key购买 nike

我有一个 Pandas 数据框 df 为:

Time    Type    Value
1/15/2019 A 109.99
1/16/2019 A 108.47
1/17/2019 A 107.71
1/18/2019 A 109.23
1/21/2019 A 109.23
1/22/2019 A 108.47
1/23/2019 A 110.75
1/24/2019 A 112.27
2/4/2019 B 172.1
2/5/2019 B 170.55
2/6/2019 B 170.55
2/7/2019 B 171.79
2/8/2019 B 172.41
2/11/2019 B 174.89
2/12/2019 B 176.15
2/13/2019 B 174.09
2/14/2019 B 171.05

我想从上面得到每种类型的最后 3 个值的平均值,如下所示:

Type Last3Avg
A 110.50
B 173.56

average(108.47, 110.75, 112.27) = 110.50

我正在尝试各种语法来遵循但没有成功:

df.groupby('Type').ix[-3:].mean()

最佳答案

让我们试试groupbyapply。取最后 3 行并求出它们的平均值。

df.groupby('Type').apply(lambda x: x.tail(3).mean())

Value
Type
A 110.496667
B 173.763333

同样,你也可以这样做

df.groupby('Type').tail(3).groupby('Type').mean()

Value
Type
A 110.496667
B 173.763333

关于python - 在 pandas 中用 group by 取最后 n 个元素的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54712660/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com