gpt4 book ai didi

python - 左对齐 Pandas 滚动对象

转载 作者:太空狗 更新时间:2023-10-29 16:56:00 28 4
gpt4 key购买 nike

我想使用 pandas 0.18.1 获取单列数据帧的滚动平均值。从 0.18.0 版本开始,这是通过 rolling() 对象完成的。这些滚动对象的默认设置是右对齐的。您可以传递一个 bool 参数 center=True,以将滚动对象与中心值对齐,但似乎没有办法将其左对齐。这是一个例子:

df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27

标准方法自动向右对齐,因此在窗口大小为 3 的前两个索引处没有值:

 df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333

我们可以像这样居中对齐操作:

df.rolling(window=3).mean(center=True)
A
0 NaN
1 3.666667
2 5.666667
3 11.333333
4 18.333333
5 NaN

但我要找的是这个:

df.rolling(3).mean()
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN

我可以通过使用默认的右对齐来完成此操作,然后重新为其编制索引,或者通过颠倒行的顺序然后将其“右对齐”,但这些是解决问题的方法一个直接的操作。

最佳答案

我想你可以使用 shift :

a = df.rolling(window=3).mean().shift(-2)
print (a)
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN

关于python - 左对齐 Pandas 滚动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38055632/

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