如何将同列名的两个DataFrame并排合并(如A列与A列相邻)
解决方法
要实现将同名列放在一起的合并效果,你可以在拼接后对列索引进行排序,具体步骤如下:
- 先用
pd.concat()拼接两个DataFrame - 对拼接结果按列名排序,相同列名会自动相邻排列
示例代码:
import pandas as pd df1 = pd.DataFrame({'A': [1, 2], 'B': ["abc", "abc"], 'C': [0, 1]}) df2 = pd.DataFrame({'A': [1, 6], 'B': ["bcd", "abc"], 'C': [5, 5]}) # 拼接两个DataFrame combined_df = pd.concat([df1, df2], axis=1) # 按列名排序,同名列会相邻 result_df = combined_df.sort_index(axis=1) print(result_df)
执行后输出结果:
A A B B C C 0 1 1 abc bcd 0 5 1 2 6 abc abc 1 5
你也可以直接通过重新索引列的方式实现,效果完全一致:
result_df = combined_df[sorted(combined_df.columns)]
原理很直白:pd.concat(axis=1)会按传入的DataFrame顺序拼接列(先放df1的所有列,再放df2的所有列),而对列索引排序后,相同名称的列会被归为一组,就能得到你想要的列顺序。
内容的提问来源于stack exchange,提问作者Rony Golder
相关产品推荐
相关产品推荐

