如何合并DataFrame时考虑列顺序,实现类似SQL UNION/UNION ALL的效果
实现DataFrame合并的UNION/UNION ALL效果
处理步骤
1. 统一列顺序(解决列混乱问题)
你的两个DataFrame列名一致但顺序不同,合并前先对齐列顺序,避免出现列重复或顺序错乱的情况:
import pandas as pd df1 = pd.DataFrame({'A':['a','a'], 'B':['b','b']}) df2 = pd.DataFrame({'B':['b','b'], 'A':['a','a']}) # 让df2的列顺序和df1保持一致 df2 = df2[df1.columns]
2. 实现UNION ALL(保留所有重复行)
直接合并并重置索引,对应SQL的UNION ALL逻辑:
union_all_df = pd.concat([df1, df2], ignore_index=True) print(union_all_df)
输出结果:
A B 0 a b 1 a b 2 a b 3 a b
3. 实现UNION(去重合并)
在UNION ALL的结果上去除完全重复的行,对应SQL的UNION逻辑:
union_df = union_all_df.drop_duplicates(ignore_index=True) print(union_df)
输出结果:
A B 0 a b
内容的提问来源于stack exchange,提问作者beridzeg45
相关产品推荐
相关产品推荐

