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

如何清洗CSV字符串列,仅保留其中的人名内容?

嘿,我明白你需要从那份2018年总统会议CSV的oque列里,把混杂在其他内容里的人名单独提取出来,只保留名字、中间名和姓氏对吧?结合你的需求,我给你准备了两种常用场景的解决方案,你可以按需选择:

方案一:用Python Pandas处理(适合批量/自动化场景)

处理CSV文件最灵活的方式还是用Python的pandas库,配合正则表达式精准匹配人名。考虑到原数据集是葡萄牙语的,正则里特意兼容了带重音的姓名:

  1. 先导入所需库并读取CSV文件:
import pandas as pd
import re

# 替换成你的CSV文件路径
df = pd.read_csv("2018总统会议记录.csv")
  1. 定义一个提取并可选截断人名的函数:
def extract_and_truncate_names(text):
    # 匹配葡萄牙语姓名:首字母大写,支持中间名,多个姓名用逗号+空格分隔
    name_pattern = r'([A-Z][a-zA-ZÀ-ÿ]+(?: [A-Z][a-zA-ZÀ-ÿ]+)*)'
    # 提取所有符合格式的姓名
    matched_names = re.findall(name_pattern, text)
    # 对过长的姓名进行截断(比如你例子里的Henrique Me...),这里设置截断长度为10,可自行调整
    processed_names = [name if len(name) <= 10 else f"{name[:10]}..." for name in matched_names]
    # 用逗号连接所有姓名
    return ', '.join(processed_names)

# 将函数应用到oque列,生成新的提取后列
df['提取的人名'] = df['oque'].apply(extract_and_truncate_names)
  1. 保存处理后的文件:
# 保存为新的CSV,不保留索引列
df.to_csv("处理后的总统会议记录.csv", index=False)

小提示:如果你的姓名有特殊格式(比如带头衔缩写),可以调整正则表达式的规则,比如去掉Dr.这类前缀,只保留纯姓名部分。

方案二:用Excel公式处理(适合可视化手动操作场景)

如果你更习惯用Excel,这里有个适合Excel 365或新版Excel的公式,能直接拆分并提取人名,还支持截断:

假设你的oque列在A列,在B2单元格输入以下公式,然后下拉填充即可:

=TEXTJOIN(", ", TRUE, IF(ISNUMBER(SEARCH(" ", TRIM(MID(SUBSTITUTE(A2, ",", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*100+1, 100)))), IF(LEN(TRIM(MID(SUBSTITUTE(A2, ",", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*100+1, 100)))>10, LEFT(TRIM(MID(SUBSTITUTE(A2, ",", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*100+1, 100)),10)&"...", TRIM(MID(SUBSTITUTE(A2, ",", REPT(" ", 100)), (ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*100+1, 100))), ""))

注:如果是旧版Excel,输入公式后需要按Ctrl+Shift+Enter触发数组公式生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:39:19