You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas DataFrame拼接后出现重复同名列的技术问题求助

解决pd.concat拼接DataFrame时出现重复列的问题

这个问题的核心原因是两个DataFrame中同名的agentid列数据类型不一致,pandas在拼接时会将数据类型不同的同名列视为独立的列,从而导致重复列的出现。

第一步:验证问题根源

先检查两个DataFrame各列的数据类型,确认agentid的类型差异:

print(df1.dtypes)
print(df2.dtypes)

你会发现agentid列的类型不一样(比如一个是int64,另一个是object或者float64)。

第二步:统一数据类型后再拼接

将两个DataFrame的agentid列转换为相同的数据类型(比如统一为int64),然后再执行拼接:

# 统一agentid列的数据类型
df1['agentid'] = df1['agentid'].astype('int64')
df2['agentid'] = df2['agentid'].astype('int64')

# 执行拼接(可选ignore_index=True重置索引,让结果更整洁)
result = pd.concat([df1, df2], sort=False, ignore_index=True)
print(result)

执行后会得到正确的拼接结果:

agent  agentid agentname agentaddress
0      1     1001      test        delhi
1      2     1002     test1     vadodara

额外排查点

如果统一类型后还是出现重复列,那要检查列名是否完全一致:

# 对比两个DataFrame的列名列表
print(df1.columns.tolist())
print(df2.columns.tolist())

有时候列名看起来一样,但实际包含隐藏空格、大小写差异(比如AgentID和agentid),这时候需要先统一列名:

# 确保列名完全一致(转为小写并去除首尾空格)
df1.columns = df1.columns.str.strip().str.lower()
df2.columns = df2.columns.str.strip().str.lower()

内容的提问来源于stack exchange,提问作者Mohit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:53:13