默认情况下,我有一个疑问,我正在使用Pandas.DataFrame.rolling()
方法。而且我发现该方法仅根据前一个数字或该值的中心数计算值。现在,我需要根据后面的数字获得价值。如:
import pandas as pd
datas = pd.DataFrame({"a": [1,2,3]})
datas["c"] = datas["a"].rolling(2, min_periods=1).mean()
数据:
a c
0 1 1.0
1 2 1.5
2 3 2.5
如何获取数据,例如:
a c
0 1 1.5
1 2 2.5
2 3 3.0
如果有人能回答我将不胜感激。
答案 0 :(得分:1)
您可以通过在滚动前调用.iloc[::-1]
来反转列:
datas["c"] = datas["a"].iloc[::-1].rolling(2, min_periods=1).mean()
这将为您提供所需的数据框。
答案 1 :(得分:0)
您可以反转数据框并进行滚动。
datas = datas[::-1]
datas['c'] = datas.rolling(2,min_periods=1).mean()
datas=datas[::-1]
您将获得输出。