Pandas实现var1滚动求和代码运行结果不符合预期求解决
问题原因
- 你编写的循环逻辑仅对当前行的
var1值执行了2次累加操作,完全没有读取相邻行的var1值参与计算,所以最终输出的total是当前行var1的2倍,不符合相邻两项求和的需求。 - 手动写循环处理pandas的列数据效率极低,且极易出现逻辑错误,pandas内置的滑动窗口方法可以直接实现你要的滚动求和需求。
正确实现代码
import pandas as pd data = pd.read_csv("C:/Users/ameri/tempjohn.csv") # 窗口大小设为2,直接计算相邻两项的滚动和 data['total'] = data['var1'].rolling(window=2).sum() # 若需要将求和结果和你举例的位置对齐(即5+4的结果放在第一行位置),可以添加下行代码 # data['total'] = data['total'].shift(-1) print(data['total'])
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

