Python Pandas事件研究

时间:2014-08-13 15:05:52

标签: python pandas

我试图在蟒蛇熊猫中进行活动研究。我有2个数据集,一个具有事件的日期和描述,另一个数据集具有股票的每日股票回报。我想得到的是一个数据集,其中包含事件前后90天的股票回报。

Data1 Ex:
StockID EventDate
1/1/2001
B 5/1/2002
C 10/1/2005
D 12/1/2006
......

Data2 Ex:
StockID日期返回
1/1/1996 0.01
A 1/2/1996 0.01
1/3/1996 0.02
...... ...... A 12/20/2010 0.02
B 1/1/1996 0.01
...... ...... Z 1/1/1996 0.05

通缉数据集Ex:
StockID EventDate返回事件
...... ...... ...... A 12/31/2000 0.01 -1
A 1/1/2001 0.02 0
A 1/2/2001 0.01 1 ...... ...... ...... B 4/30/2002 0.01 -1
B 5/1/2002 0.02 0
B 5/2/2002 0.01 1
...... ...... ...... C 10/1/2005 0.02 0
.. .. .. ..

我试图引导/滞后Data2上的变量来创建180个新变量并将其合并到Data1,但这非常低效并导致内存问题(使用超过100GB的RAM),因为Data2有点大

这是我尝试的内容:

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')

有更有效的方法吗?

0 个答案:

没有答案