Python MergeError求助:合并时后缀致重复列不被允许
解决Pandas合并CSV时的MergeError(重复列问题)
问题场景
按照Packt Publishing《Healthcare analytics made simple: Techniques in healthcare computing using machine learning and python》第6章第154页的代码合并多个CSV文件时,触发以下错误:
MergeError: Passing 'suffixes' which cause duplicate columns {'State_x', 'City_x', 'Hospital Name_x', 'County Name_x', 'Address_x'} is not allowed.
排查&解决步骤
- 先检查待合并的DataFrame:是不是之前的操作已经给列名加上了
_x/_y后缀?比如之前做过合并没改后缀,这次再用默认的('_x', '_y')就会重复。 - 确认合并的主键(
on参数)是否正确:如果没指定正确的合并键(比如医院唯一ID),Pandas会对所有同名列生成后缀,容易导致重复。
具体解决方法
更换不重复的自定义后缀
把默认的后缀换成不会冲突的标识,比如用对应文件的名称缩写,示例代码:# 替换成你实际的DataFrame和合并键 merged_df = pd.merge(df_hospital, df_quality, on='Hospital ID', suffixes=('_hospital', '_quality'))提前清理已有重复后缀列
如果之前的DataFrame已经有_x类后缀,先重命名这些列:# 示例:把已有_x后缀的列重命名 df_hospital.rename(columns={ 'State_x': 'State_original', 'City_x': 'City_original' }, inplace=True)再执行合并操作。
核对教材步骤的DataFrame结构
对比教材154页之前的DataFrame列名,确保你的数据列和教材示例完全一致,没有多出来的后缀列——可能是前面步骤不小心多做了一次合并导致的。
内容的提问来源于stack exchange,提问作者12masonr
相关产品推荐
相关产品推荐

