【发布时间】:2021-03-27 06:50:29
【问题描述】:
我有一个超过 100 万行的巨大时间序列数据框。它有每月股票收益列表,我想创建一个新行来跟踪前 3 个月的滚动总和。数据框首先包含所有公司 A 行,然后是所有公司 B 行,然后是所有公司 C 行...
例如:
date COMNAM PRC RET
395 2017-02-28 GAS NATURAL INC 12.650 0.000
396 2017-03-31 GAS NATURAL INC 12.700 0.010
397 2017-04-28 GAS NATURAL INC 12.500 -0.016
398 2017-05-31 GAS NATURAL INC 12.700 0.016
399 2017-06-30 GAS NATURAL INC 12.925 0.024
400 2017-07-31 GAS NATURAL INC 12.950 0.002
401 2017-08-31 GAS NATURAL INC nan nan
402 1985-12-31 NaN nan nan
403 1986-01-31 MOBILE NATIONAL CORP 11.625 nan
404 1986-02-28 MOBILE NATIONAL CORP 13.250 0.140
405 1986-03-31 MOBILE NATIONAL CORP 14.188 0.071
406 1986-04-30 MOBILE NATIONAL CORP 14.938 0.053
407 1986-05-30 MOBILE NATIONAL CORP 14.625 -0.021
408 1986-06-30 MOBILE NATIONAL CORP 12.688 -0.132
409 1986-07-31 MOBILE NATIONAL CORP 13.312 0.049
410 1986-08-29 MOBILE NATIONAL CORP 13.312 0.000
411 1986-09-30 MOBILE NATIONAL CORP 14.250 0.070
412 1986-10-31 MOBILE NATIONAL CORP 13.375 -0.061
413 1986-11-28 MOBILE NATIONAL CORP 13.375 0.000
414 1986-12-31 MOBILE NATIONAL CORP 12.375 -0.075
rolling() 函数将给我前 3 个月的总和,但这将包括每家公司第一个日期的前一个股票的最后回报。我觉得 groupby() 函数可能会有所帮助,但我有点坚持如何做。还是我想多了,有什么更好的方法我什至不需要 groupby?
【问题讨论】:
-
请不要将图像作为您的数据放入,我们需要重新输入它以将其放入最后的数据框中...
-
谢谢。这是我没有真正想到的好点。我现在用实际代码交换了图像。
标签: pandas time-series pandas-groupby