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

如何在Pandas中拆分含多词姓氏:提取名与姓

解决Pandas拆分姓名时姓的拼接问题

你的问题核心在于:str.split().str[1:]返回的是列表类型的值,而非字符串,所以直接用replace无法去除括号——括号是列表的打印格式,不是字符串里的字符。下面是可行的解决方案:

步骤1:修正DataFrame初始化

你最初的代码没有正确创建Pandas DataFrame,先调整这一步:

import pandas as pd

# 用指定列名创建DataFrame
df = pd.DataFrame(
    ['Victor De La Cruz', 'Ashley Smith', 'Angel Miguel Hernandez', 'Hank Hill'],
    columns=['full_name']
)

步骤2:正确拆分并拼接姓

提取名的逻辑没问题,但姓需要把拆分后的剩余元素用空格拼接成字符串,用str.join(' ')实现:

# 提取名(取拆分后的第一个元素)
df['first_name'] = df['full_name'].str.split().str[0]

# 提取姓(将拆分后的第2个及以后元素拼接为字符串)
df['last_name'] = df['full_name'].str.split().str[1:].str.join(' ')

运行结果

执行后会得到你期望的格式:

full_name first_name       last_name
0  Victor De La Cruz      Victor    De La Cruz
1       Ashley Smith      Ashley          Smith
2  Angel Miguel Hernandez      Angel  Miguel Hernandez
3          Hank Hill        Hank            Hill

为什么之前的replace无效?

df['full_name'].str.split().str[1:]返回的Series中,每个元素都是列表(比如['De', 'La', 'Cruz']),而replace('[', '')是针对字符串的操作,无法作用于列表对象。只有通过str.join(' ')把列表转为字符串后,才能得到无括号的连续文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:57:10