python - 将滚动窗口添加到熊猫中每一行的列
问题描述
我在数据框中有一个时间序列,并且想将窗口大小为 n 的滚动窗口添加到每一行。
df['A'].rolling(window=6)
这意味着每行将有额外的 6 列,其中包含该列的滚动窗口的相应编号。如何使用熊猫的滚动功能实现这一点,自动命名列 [t-1, t-2, t-3...tn]?
解决方案
df.shift(n)
是你要找的:
n = 6 # max t-n
for t in range(1, n+1):
df[f'A-{t}'] = df['A'].shift(t)
参考。https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.shift.html
推荐阅读
- android - 更新 Xamarin.Forms 后 Android 构建失败
- c# - 尝试按对象分组作为键时,字段必须是累加器对象错误
- firebase - 从谷歌云功能访问 Firebase 管理员
- c++ - 为什么即将推出的 Ranges 库不支持从范围初始化容器?
- javascript - 如何在 React 中将按钮的 onClick 事件设置为多个功能(取决于道具)?
- javascript - 古腾堡核心块 - 删除选项
- prometheus - 如何在 PromQL 中获得两个指标中的最小值?
- php - PHP foreach 循环在从 SQL 解析数据时意外停止
- c++ - 在线程内打印到 std::cout 使它们运行得更快
- javascript - 当元素进入视野时运行关键帧动画的好方法?