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

如何将Pandas DataFrame的单个姓名列拆分为姓氏和名字两个新列

错误原因

你写的ChaperoneName[0]是提取Name这个Series(列)的第0行的完整字符串,不是对每行字符串做切片操作,所以所有行都会填充同一个固定值。pandas中要对字符串列逐元素做处理,需要使用.str字符串访问器。

实现代码

写法1:逐列赋值

# 按逗号分割,取第一部分作为姓氏
df['Surname'] = df['Name'].str.split(',', expand=True)[0]
# 取逗号后面的部分,按空格分割后取索引为1的元素(跳过尊称)作为名字
df['Forename'] = df['Name'].str.split(',', expand=True)[1].str.split(expand=True)[1]

写法2:和你原有逻辑一致的assign写法

df = df.assign(
    Surname = df['Name'].str.split(',', expand=True)[0],
    Forename = df['Name'].str.split(',', expand=True)[1].str.split(expand=True)[1]
)

补充说明

如果存在部分姓名没有中间名首字母的场景,以上代码依然有效,按空格分割后索引1的位置始终对应名字字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:15:03