我的熊猫数据框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()
答案 0 :(得分:3)
让我们尝试groupby
和apply
。取最后三行并找出平均值。
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
答案 1 :(得分:3)
使用time
nth