6
我有一個歷史股票交易的數據框。該框架具有['ticker','date','cusip','profit','security_type']等列。最初:用鑰匙更新熊貓數據框
trades['cusip'] = np.nan
trades['security_type'] = np.nan
我有歷史配置文件,我可以加載到有比如[「股票」,「CUSIP」,「日期」,「姓名」,「SECURITY_TYPE」,「primary_exchange」]列幀。
我想用配置中的cusip和security_type更新交易框架,但僅限於股票代碼和日期匹配的地方。
我想我可以做這樣的事情:
pd.merge(trades, config, on=['ticker', 'date'], how='left')
但是,這不更新列,它只是增加了配置列交易。
以下工作,但我認爲必須有更好的方法。如果不是的話,我可能會在熊貓之外做。
for date in trades['date'].unique():
config = get_config_file_as_df(date)
## config['date'] == date
for ticker in trades['ticker'][trades['date'] == date]:
trades['cusip'][
(trades['ticker'] == ticker)
& (trades['date'] == date)
] \
= config['cusip'][config['ticker'] == ticker].values[0]
trades['security_type'][
(trades['ticker'] == ticker)
& (trades['date'] == date)
] \
= config['security_type'][config['ticker'] == ticker].values[0]