我从CRSP下载了一些股票数据,需要该公司过去36个月的股票回报差异
因此,基本上方差基于两个条件:
然而,我从样本中排除了低价股(价格低于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而不是实际回报,这就是为什么第一行
可以用平均值替换缺少的值。它不会影响方差,因为方差是在减去平均值后计算的,因此在这种情况下,对于没有该值的时间,方差的贡献将为0
相关问题 更多 >
编程相关推荐