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

如何清理格式混乱的姓名列?解决分隔符、姓前置等格式问题

姓名数据清理实现方案

核心处理逻辑

针对数据集里的姓名格式问题,按以下步骤逐步清理:

  1. 替换分隔符:将所有点号.替换为空格,统一分隔符格式
  2. 反转姓前置格式:识别带逗号,的条目,将「姓, 名/头衔」结构反转成「名/头衔 姓」
  3. 规整空格:将连续多个空格合并为单个,避免格式混乱

Python 实现代码(基于 Pandas)

假设数据集已加载为 Pandas DataFrame,以下是具体实现:

import pandas as pd
import re

def clean_full_name(name):
    # 步骤1:替换点号为空格
    name = name.replace('.', ' ')
    # 步骤2:处理姓前置的逗号格式
    if ',' in name:
        last_part, first_part = name.split(',', 1)
        name = f"{first_part.strip()} {last_part.strip()}"
    # 步骤3:合并连续空格
    name = re.sub(r'\s+', ' ', name).strip()
    return name

# 示例数据加载
data = {
    'ID': [1,2,3,4,5,6,7,8],
    'Name': [
        'Ellie Joella',
        'Antonio.Chaz',
        'Dr. Ian Coretta',
        'Doe, John',
        'Marie.Eliza.Grey',
        'Mason, Lary O',
        'Winfred, Mr. Barry',
        'Andrea.T.B.Shaw'
    ]
}
df = pd.DataFrame(data)

# 应用清理函数
df['Cleaned_Name'] = df['Name'].apply(clean_full_name)

print(df[['ID', 'Cleaned_Name']])

代码说明

  • 替换点号:直接用字符串replace方法将所有.转为空格,解决点分隔姓名的问题
  • 处理逗号格式:通过split(',', 1)只拆分一次,避免中间名带逗号的极端情况,然后反转拼接顺序
  • 规整空格:用正则表达式re.sub(r'\s+', ' ', name)合并连续空格,确保姓名各部分之间只有一个空格

验证结果

运行代码后,输出的Cleaned_Name列将完全符合目标格式:

IDCleaned_Name
1Ellie Joella
2Antonio Chaz
3Dr. Ian Coretta
4John Doe
5Marie Eliza Grey
6Lary O Mason
7Mr. Barry Winfred
8Andrea T B Shaw

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:12:39