如何计算最近36个月的股票方差(缺少一些月度数据)?

2024-09-27 23:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我从CRSP下载了一些股票数据,需要该公司过去36个月的股票回报差异

因此,基本上方差基于两个条件:

  • 相同的PERMCO(公司编号)
  • 过去3年的月度股票回报率

然而,我从样本中排除了低价股(价格低于2美元的股票)。因此,有时月份缺失,例如4月和6月的月报表直接位于彼此的顶部

如果我没有弄错的话,滚动函数(按Permco分组)将只获取上述36个月的收益。但如果缺少月份,滚动函数实际上需要3年以上的数据(因为过去36个月的收益率将超过这一时间段)

我通常和微软Excel一起工作。然而,在这种情况下,数据量太大,让Excel计算数据需要几年时间。这就是我想用Python解决这个问题的原因。 样本组织如下:

PERMNO date SHRCD PERMCO PRC RET

当我弄明白如何在这里创建一个合适的表时,我将向您展示我的数据示例

到目前为止,我所尝试的:

data["RET"]=data["RET"].replace(["C","B"], np.nan)
data["date"] = pd.to_datetime(date["date"])
data=data.sort_values[("PERMCO" , "date"]).reset_index()
L3Yvariance=data.groupby("PERMCO")["RET"].rolling(36).var().reset_index()

有时会有C和B而不是实际回报,这就是为什么第一行


Tags: 数据函数datadateindex公司差异excel

热门问题