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

Python:如何仅当存在特定特殊字符时分割DataFrame列?

解决Pandas中仅清理特定格式的Name列数据

你的问题出在str.partition('#')[2]会对所有行执行分割——正常姓名里没有#,分割后第三个元素是空字符串,自然会清空有效数据。要只处理带#数字;#前缀的行,用正则匹配替换更精准:

import pandas as pd

# 示例测试数据
df = pd.DataFrame({
    'Name': ['Doe, John', '#123;#Smith, Jane', '#45;#Brown, Bob']
})

# 精准移除开头的"#数字;#"前缀
df['Name'] = df['Name'].str.replace(r'^\#\d+\;#', '', regex=True)

正则说明:

  • ^:限定匹配字符串开头的内容,避免误匹配字符串中间的类似格式
  • \#:匹配#符号(正则里#是特殊字符,需要转义)
  • \d+:匹配1个或多个任意数字
  • \;#:匹配固定的;#后缀

处理后你的Name列会保留正常格式的姓名,同时自动清理掉异常前缀:

Name
Doe, John
Smith, Jane
Brown, Bob

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:45:43