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

DataFrame拼接字符串列触发TypeError:列表与字符串无法拼接求助

问题分析与解决

你的代码出错核心原因是使用了str.split()把字符串转成了列表,之后试图用+' '+拼接列表和字符串,自然触发类型错误——列表只能和列表拼接,不能直接加字符串。

错误代码的问题点

你执行df_control['NAME'].str.split()后,原字符串(比如"Wilson")会被转为列表["Wilson"],同理LASTNAME列也变成了列表类型。此时执行df_control['NAME']+' '+df_control['LASTNAME'],本质是尝试做["Wilson"] + " " + ["Nunes"],这显然不符合Python的类型规则,所以抛出TypeError。

正确实现方式

如果你的需求是去除字符串中的多余空格(两端或中间)后拼接两列,直接操作字符串即可,不需要转成列表:

# 确保列是字符串类型
df_control['NAME'] = df_control['NAME'].astype(str)
df_control['LASTNAME'] = df_control['LASTNAME'].astype(str)

# 可选:去除字符串两端的空格
df_control['NAME'] = df_control['NAME'].str.strip()
df_control['LASTNAME'] = df_control['LASTNAME'].str.strip()

# 可选:如果要把中间多个连续空格替换成单个(比如原数据有多个空格分隔)
# df_control['NAME'] = df_control['NAME'].str.split().str.join(' ')
# df_control['LASTNAME'] = df_control['LASTNAME'].str.split().str.join(' ')

# 直接拼接两列生成全名
df_control['FULL NAME'] = df_control['NAME'] + ' ' + df_control['LASTNAME']

验证结果

用你的示例数据执行后,会得到期望的结果:

NAMELASTNAMEFULL NAME
1WilsonNunesWilson Nunes

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:25:27