如何使用Pandas的concat命令将两个DataFrame横向并排拼接?
解决Pandas DataFrame横向拼接匹配年份的问题
方法1:用concat实现横向并排
pd.concat()默认是纵向堆叠(axis=0),要横向拼接得显式指定axis=1,但得先保证两个DataFrame的索引是年份(或者把年份列设为索引),这样年份和对应数值才能对齐:
import pandas as pd # 先将年份列设为索引(如果还没设置的话) df1 = df1.set_index('年份') df2 = df2.set_index('年份') # 横向拼接 combined_df = pd.concat([df1, df2], axis=1)
方法2:用merge按年份精准匹配(更推荐)
如果两个DataFrame都有独立的年份列,用merge按年份关联更稳妥,能严格保证年份和数值对应:
# 按共同的'年份'列拼接,只保留两边都有的年份 combined_df = pd.merge(df1, df2, on='年份', how='inner') # 如果要保留所有年份(包括某一边独有的),改用how='outer' # combined_df = pd.merge(df1, df2, on='年份', how='outer')
排查要点
- 要是设了
axis=1还是不对,检查两个DataFrame的年份格式是否统一(比如一个是2023整数,一个是"2023"字符串) - 确认没有重复的年份记录,否则会出现重复行
内容的提问来源于stack exchange,提问作者Steven Jean
相关产品推荐
相关产品推荐

