默认情况下,我有一个问题,那就是我正在使用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
如果有人能回答这个问题,我将不胜感激。
发布于 2018-08-08 14:55:05
您可以通过在滚动前调用.iloc[::-1]
来反转列:
datas["c"] = datas["a"].iloc[::-1].rolling(2, min_periods=1).mean()
这将为您提供所需的数据帧。
发布于 2018-08-08 14:54:54
您可以反转数据帧并执行滚动。
datas = datas[::-1]
datas['c'] = datas.rolling(2,min_periods=1).mean()
datas=datas[::-1]
您将获得输出。
https://stackoverflow.com/questions/51740121
复制相似问题