Pandas多列合并时丢失其他列的问题排查与解决
Pandas合并DataFrame丢失列的解决方案
问题重现
我需要合并两个DataFrame:
- df1包含
Column A、Column B、Column C、Column D四列 - df2包含
Column E、Column F、Column G、Column H四列
预期合并后得到包含所有8列的结果,于是用了外连接合并代码:
df1.merge(df2, how='outer', left_on=['Column A','Column B'], right_on=['Column E','Column F'])
但执行后发现df1的Column C和Column D直接丢失了,只有部分列显示。为了确认不是显示限制导致的,我设置了:
pd.set_option('display.max_columns', None)
打印后确实确认这两列没有出现在合并结果里。
问题原因与解决
排查后发现,问题出在从Excel导入df1时索引丢失。只需要先恢复df1的索引:
df1 = df1.reset_index()
之后再执行原来的合并代码,就能得到包含所有列的正确结果了。
内容的提问来源于stack exchange,提问作者Fuzzy Fuzzballs
相关产品推荐
相关产品推荐

