如何合并拥有多个相同列的pandas DataFrame且不生成带后缀的重复列
Pandas合并同字段DataFrame避免重复后缀列的方法
核心原理
只要将两个DataFrame共有的Date、Region、District字段显式指定为合并连接键,pandas会自动对齐这些字段的取值,不会生成带.a/.b后缀的重复列。
具体实现方案
方案1:按共同字段关联合并(适用于两个表有其他非共同字段的场景)
使用pd.merge()方法时通过on参数传入共同字段列表即可:
import pandas as pd # 示例:df1、df2为待合并的两个DataFrame merged_df = pd.merge( left=df1, right=df2, # 显式指定共同字段为连接键 on=["Date", "Region", "District"], # 可选:指定合并方式,默认inner,可选left/right/outer how="inner", # 可选:如果有其他非共同键的重名字段,可自定义后缀区分 suffixes=("_left", "_right") )
注意:即使不显式指定
on参数,pandas也会自动识别所有同名字段作为连接键,不会生成重复后缀,但显式指定可提升代码可读性,避免后续表结构变更后逻辑异常。
方案2:按行拼接(适用于两个表字段完全一致,仅需要合并数据行的场景)
如果两个DataFrame的字段完全相同,只是存储的是不同行的数据,直接用pd.concat()拼接即可:
merged_df = pd.concat([df1, df2], ignore_index=True)
内容的提问来源于stack exchange,提问作者Zane Cantrell
相关产品推荐
相关产品推荐

