【发布时间】:2021-03-30 20:11:44
【问题描述】:
对于下面的数据框df,我想在每行的sales列中找到最后3个值的平均值,将结果命名为新列Mean_lst_3,如下所示,最好的方法是什么这样做?
STK_ID RPT_Date TClose sales Mean_lst_3
0 000568 20060331 3.69 5.975 NaN
1 000568 20060630 9.14 10.143 NaN
2 000568 20060930 9.49 13.854 NaN
3 000568 20061231 15.84 19.262 9.99 (= mean([5.975, 10.143, 13.854]))
4 000568 20070331 17.00 6.803 14.42(= mean([10.143, 13.854, 19.262]))
5 000568 20070630 26.31 12.940 13.31(= mean([13.854, 19.262, 6.803]))
6 000568 20070930 39.12 19.977 ...
7 000568 20071231 45.94 29.269 ...
8 000568 20080331 38.75 12.668 ...
9 000568 20080630 30.09 21.102 ...
10 000568 20080930 26.00 30.769 ...
【问题讨论】:
-
嗨@cs95 我想你可能误解了我的问题,CMIIW,我是根据当前行而不是整个数据框来查找最后 3 个值。
-
啊,因为U11前锋的回答,我得到了错误的印象。你在找
df['sales'].rolling(3).mean().shift()吗?