python - 滞后转移熊猫中的长桌
问题描述
我有一个熊猫数据框,如下所示:
ticker, t, shout_t shout_tminus
A 2010-01-01 22
A 2010-01-02 23
A 2010-01-03 24
B 2010-01-01 44
B 2010-01-02 55
B 2010-01-03 66
C 2010-01-01 100
C 2010-01-02 22
C 2010-01-03 33
我想将此数据帧延迟 1 天并计算shout_minus 值。理想情况下,我会执行 df.shift(1),但这将是一个错误。理想情况下,我想:
A 2010-01-01 22 NA
A 2010-01-02 23 22
A 2010-01-03 24 23
为shout_tminus 的最后一个值。对于 B 和 C 也是如此。我做了以下操作:
ids = ['A','B','C']
df['shoutminus'] = None
for key in ids:
temp = df[df.ticker == key].copy()
temp['shout_tminus'] = temp['shout_t'].shift(1)
df.update(temp)
问题是如果我的数据框太大,我有一个 1000 万行的数据框,只需对 1000 个代码执行此操作就需要很长时间。有没有更快的方法来为长表 df 正确移动系列?谢谢
解决方案
推荐阅读
- php - 如何在 PHP 中像 00:00:00 这样的字符串格式化 MP3 长度时间
- python - 使用 Numpy 重塑数组
- html - 鼠标悬停商店滚动效果
- javascript - JavaScript 将嵌套字符串解析为 JSON.parse()
- git - 恢复从来不是本地的 git commit
- android - 分析 - 哪一层?
- gatsby - 如何在 Gatsby 中获取当前 url?
- javafx - 使用 JavaFX 将渐变应用于球体对象
- python - 用python在大文件中查找字符串的内存和计算效率
- vue.js - 禁用提交按钮,但有效的表单数据不会启用它(vee-validate)