Я хотел бы поместить 2 таблицы в 1, а именно дату корпоративного объявления и ее цену в тот день (в другой таблице)
У меня есть 2 кадра данных со следующими столбцами
df1: date, announcement, ticker
date ticker announcement
25/4/2013 AAPL Change in Boardroom
25/4/2013 GOOG OTHERS
25/4/2013 AMZN Change in Audit Committee
df2: date, ticker, price
date ticker announcement
22/3/2012 AAPL 100.00
23/3/2012 AAPL 102.30
24/3/2012 AAPL 105.40
...
...
def getPrice(dt,tk):
try:
return df2[(df2['date']>=dt)&(df2['ticker']==tk)].sort_values(by='date')['price'].values[0]
except:
return 0
prices_array = list(map(getPrice,df1['date'].values,df1['ticker'].values))
df1['price'] = prices_array
Для функции «карта» весь процесс занимает очень много времени.Я хотел бы использовать apply для df, но я знаю только, как использовать apply с лямбда-функцией, которая не содержит «if, then».
Я хочу дополнительный столбец, подобный этому:
date ticker announcement price
25/4/2013 AAPL Change in Boardroom 124.10
25/4/2013 GOOG OTHERS 50.85
25/4/2013 AMZN Change in Audit Committee 102.20
Есть предложения о том, как быстро это сделать?Или можете сделать это за короткое время?
Спасибо и ценим вашу помощь