如何基于股票代码索引合并两个列顺序不同的Pandas DataFrame
合并DataFrame解决方案
问题根因
pd.concat()仅负责沿指定轴拼接数据,不会基于字段值做关联匹配,无法实现按股票代码对齐数据的需求。两个表的列顺序不影响合并逻辑,只要共有的股票代码列名(或值规则)一致即可正常匹配。
实现代码
使用pandas内置的merge()方法完成关联匹配即可:
# 通用写法,默认两个表的股票代码列均命名为ticker df3 = pd.merge( left=df1, right=df2, on="ticker", how="left" )
参数调整说明
- 如果你只需要从df2中提取Sector字段关联到df1,可以把
right=df2改为right=df2[["ticker", "Sector"]],减少冗余字段 - 如果两个表的股票代码列名不一致,例如df1中列名为
ticker、df2中列名为股票代码,将on="ticker"替换为left_on="ticker", right_on="股票代码"即可 how参数可按需调整:left:保留df1的全部行,df2中匹配到的内容自动填充,未匹配到的字段留空inner:仅保留两个表都存在的ticker对应的行outer:保留两个表的全部ticker对应行,未匹配到的字段留空right:保留df2的全部行
内容的提问来源于stack exchange,提问作者heff
相关产品推荐
相关产品推荐

