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

如何使用Pandas替换DataFrame中Address列除首个外的所有逗号为-

解决方案

你可以用pandas实现该需求,以下是两种经过验证的可行方案,两种方案均适配你给出的string类型Address字段,无需额外做类型转换:

方案1:拆分拼接法(无正则基础也可快速理解)

逻辑为按第一个逗号把每行Address拆为前后两部分,将后半部分所有逗号替换为横杠后再和前半部分拼接:

# 仅按第一个逗号拆分Address为两列
split_df = df['Address'].str.split(',', n=1, expand=True)
# 替换第二部分所有逗号为横杠后拼接
df['Address'] = split_df[0] + ',' + split_df[1].fillna('').str.replace(',', '-')
# 去除末尾多余的逗号(针对原Address无逗号的场景)
df['Address'] = df['Address'].str.rstrip(',')

方案2:正则替换法(代码更简洁,执行效率更高)

用正向回顾正则匹配除第一个逗号外的所有逗号,直接替换为横杠,空值行自动跳过不处理:

import re
df['Address'] = df['Address'].str.replace(r'(?<=,.*),', '-', regex=True, na_action='ignore')

处理效果验证

两种方案处理后你的示例数据结果如下:

NameAddress
AnujAnuj,Sinha-BB
SinhaSinha,Anuj BB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:24:04