You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中基于Ticker和Date列合并两个CSV文件

Pandas合并CSV文件:基于Ticker和Date双列匹配

嘿,我懂你遇到的问题了——之前的代码只按Date列合并,结果肯定会把同日期不同股票的记录混在一起,完全达不到你要的按股票+日期精准匹配的效果对吧?

其实改起来超简单,只需要把merge方法的on参数改成包含Ticker和Date的列表就行,这样Pandas就会同时用这两个字段的组合来匹配行,而不是单靠日期。

正确的合并代码

import pandas as pd

# 读取两个CSV文件
file1 = pd.read_csv("File1.csv")
file2 = pd.read_csv("File2.csv")

# 基于Ticker和Date两列进行内合并(默认只保留两边都匹配的记录)
merged_df = file1.merge(file2, on=['Ticker', 'Date'])

# 如果你需要保留File1的所有记录(即使File2没有对应匹配),可以用左连接:
# merged_df = file1.merge(file2, on=['Ticker', 'Date'], how='left')

简单解释

  • 当on参数传入列表['Ticker', 'Date']时,Pandas会逐一比对两个表中Ticker完全相同且Date完全相同的行,然后把它们的字段合并,这样最终的结果就会包含你需要的Marketcap、Open和Close字段了。
  • 默认的合并方式是how='inner',也就是只保留两个表中都存在匹配组合的行;如果需要保留某一侧的所有记录,可以调整how参数为left、right或者outer(外连接保留两边所有记录)。

额外小提示(如果列名不一致的情况)

要是两个文件里的匹配列名不一样(比如File1里叫StockCode,File2里叫Ticker),可以用left_on和right_on分别指定两边的列名:

merged_df = file1.merge(file2, left_on=['StockCode', 'Date'], right_on=['Ticker', 'Date'])

内容的提问来源于stack exchange,提问作者HelloToEarth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:10:54