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

pandas合并两个Excel工作表触发TypeError:传入str类型对象无法合并

报错原因

pd.merge()方法仅支持传入Series或DataFrame类型的对象作为待合并的数据源,你在调用时给left、right参数传入的是带单引号的字符串'df_left'、'df_right',并非之前读取Excel生成的DataFrame变量,因此触发类型错误。

错误位置定位

问题出在merge调用的传参部分:

df_result = pd.merge(left='df_left',
                     right='df_right',
                     how='left',
                     on='NUM')

此处包裹df_left、df_right的单引号会让Python把这两个值识别为普通字符串,而非你之前定义的DataFrame变量。

修正方法

去掉left、right参数对应值外层的单引号,直接传入DataFrame变量即可,修正后完整可运行代码:

import pandas as pd

df_left = pd.read_excel('AAA.xlsx', sheet_name='Sheet1')
df_right = pd.read_excel('BBB.xlsx', sheet_name='sheet1')
print(df_right)
df_right.rename(columns={'NO1': 'NUM'}, inplace=True)

df_result = pd.merge(left=df_left,
                     right=df_right,
                     how='left',
                     on='NUM')
df_result.to_excel('df_result.xlsx', index=None)
运行注意事项
  • 执行合并前需确认df_left中同样存在NUM列,否则会触发关联键不存在的报错
  • 两个表用于关联的NUM列需保持数据类型一致,避免出现一侧是字符串、一侧是数值导致关联结果为空的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:48:17