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

如何将Pandas数据框中地址列最后逗号后的内容提取至新列

提取Pandas DataFrame中地址字段的邮政编码

嘿,我来帮你搞定这个提取邮政编码的问题!你用rsplit的思路其实是对的,只是可能没用到正确的参数来精准锁定最后一段内容。下面给你两种实用的解决方案:

方法一:用rsplit精准分割(推荐格式规范的场景)

rsplit(', ', n=1)会从字符串右侧仅做一次分割,这样就能把最后一个逗号前后的内容彻底分开,再取分割后列表的最后一个元素就是我们要的邮政编码:

# 新增PostCode列存储提取出的邮政编码
df_address['PostCode'] = df_address['CompanyAddress'].str.rsplit(', ', n=1).str[-1]
  • 参数n=1是核心:它限制只分割一次,完全避免前面的逗号干扰结果
  • str[-1]用来抓取分割后列表的最后一项,也就是目标邮政编码

方法二:正则表达式提取(适配空格不统一的复杂场景)

如果有些地址里逗号后的空格不固定(比如有的是, ,有的是多空格甚至无空格),用正则会更鲁棒:

# 用正则匹配最后一个逗号后的所有非逗号内容
df_address['PostCode'] = df_address['CompanyAddress'].str.extract(r',\s*([^,]+)$')

正则逻辑拆解:

  • ,\s*:匹配逗号以及后面任意数量的空白字符(包括空格、制表符等)
  • ([^,]+)$:匹配从当前位置到字符串结尾的所有非逗号字符,精准锁定邮政编码
  • 括号()用来捕获目标内容,str.extract会自动把捕获的内容生成新列

小补充

如果存在极少数地址没有逗号的情况,可以用fillna做兜底处理:

# 无逗号的地址直接保留原内容(或替换成缺失值,按需调整)
df_address['PostCode'] = df_address['PostCode'].fillna(df_address['CompanyAddress'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:50:57