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

如何在Python Pandas中提取列内分隔符右侧的值并拆分列?

嘿,这个需求用Pandas的字符串处理工具就能轻松实现,给你两个靠谱的方案:

方案1:用str.split()直接拆分

这是最直观的方法,利用Pandas内置的字符串拆分功能,指定分隔符为逗号,再通过参数控制拆分行为:

import pandas as pd

# 先构造你的示例DataFrame
df = pd.DataFrame({'A': ['Australia', 'New Zealand', 'New Jersey,America', 'Hyderabad,India']})

# 拆分列:n=1表示只拆分第一次出现的逗号,expand=True将拆分结果转为多列
df[['A', 'B']] = df['A'].str.split(',', n=1, expand=True)

这里的n=1非常重要——它确保只会拆分第一个逗号,避免遇到多个逗号时拆分出多余列的问题。没有逗号的行,新列B会自动填充NaN,完美符合你的预期。

方案2:用str.extract()正则提取

如果你偏好正则表达式的方式,也可以用提取的思路来实现:

df[['A', 'B']] = df['A'].str.extract(r'(.*?)(?:,(.*))?$', expand=True)

简单解释下这个正则:

  • (.*?):非贪婪匹配逗号前的所有内容,作为更新后的A列
  • (?:,(.*))?$:匹配逗号后的内容作为B列,?:表示这是一个非捕获组,$确保匹配到行尾;没有逗号的行,B列会自动设为NaN

验证结果

运行上面任意一种方案后,执行print(df)就能得到你想要的输出:

A        B
0     Australia      NaN
1   New Zealand      NaN
2  New Jersey,America  America
3   Hyderabad,India     India

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:36:38