我正在尝试对Python熊猫进行一项事件研究。我有两个数据集,一个有日期和事件描述,另一个数据集有股票的每日股票收益。我想要的是一个数据集,包含事件前后90天的股票收益。在
数据1示例:
StockID事件日期
2001年1月1日
2002年5月1日
2005年1月10日
2006年1月12日
... ... 在
数据2示例:
StockID日期返回
1996年1月1日0.01
1996年1月2日0.01
1996年1月3日0.02
... ... ...
2010年12月20日0.02
1996年1月1日0.01
... ... ...
中1/1/1996 0.05
想要的数据集示例:
StockID EventDate返回事件
... ... ... ...
A 2000年12月31日0.01-1
2001年1月1日0.02 0
2001年1月2日0.01 1
... ... ... ...
B 2002年4月30日0.01-1
2002年5月1日0.02 0
2002年5月2日0.01 1
... ... ... ...
2005年10月1日0.02 0
.. .. .. .. 在
我试图引导/延迟Data2上的变量,以创建180个新变量并将其合并到Data1中,但由于Data2有点大,因此效率非常低,并导致内存问题(使用了100GB以上的RAM)。在
我试了一下:
hshifts = range(1, 91)
for hshift in hshifts:
colname = 'RETN%d' % hshift
data2[colname] = data2.groupby('StockID')['RET'].shift(hshift)
for hshift in hshifts:
colname = 'RETP%d' % hshift
data2[colname] = data2.groupby('StockID')['RET'].shift(-hshift)
wanted_dataset = pd.merge(data1, data2, on='Date')
有没有更有效的方法?在
目前没有回答
相关问题 更多 >
编程相关推荐