如何合并两个Pandas DataFrame并匹配日期与股票价格?
解决Pandas DataFrame合并问题的方案
步骤1:转换价格表的结构
你的价格表是「宽表」格式(日期为索引,股票代码为列),需要先转成「长表」才能和交易表匹配:
- 把日期索引转为普通列
- 将股票代码从列名转为单独的
Symbol列,对应价格存入Price列
执行代码:
# 重置索引,把日期转为列 df_prices_reset = df_prices.reset_index().rename(columns={'index': 'Date'}) # 宽表转长表 df_prices_long = df_prices_reset.melt( id_vars='Date', var_name='Symbol', value_name='Price' )
步骤2:合并两个表
用merge方法,以Date和Symbol作为关联键,选择inner连接(自动只保留两边都有匹配的记录):
result_df = df_trades.merge(df_prices_long, on=['Date', 'Symbol'], how='inner')
验证结果
合并后的result_df会包含Date、Symbol、Order、Shares、Price字段,且仅保留有对应价格的交易记录。
内容的提问来源于stack exchange,提问作者Manny Balboa
相关产品推荐
相关产品推荐

