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

Pandas使用split拆分列时如何将无逗号的字符串存入第二列

推荐解法(单行、矢量化运行效率高)

直接使用str.extract按规则匹配即可,完全符合你的需求:

df[['col1', 'col2']] = df['col'].str.extract(r'^(?:([^,]+),)?([^,]+)$')
  • 匹配逻辑说明:
    • 带逗号的字符串:逗号前内容存入col1,逗号后内容存入col2
    • 无逗号的字符串:col1返回空值(pandas默认pd.NA/NaN),完整内容存入col2
      如果需要col1显式存储None而非pandas默认空值,可以调整为:
df[['col1', 'col2']] = df['col'].str.extract(r'^(?:([^,]+),)?([^,]+)$').replace({pd.NA: None})

基于原有split写法的调整方案

如果你更习惯用split逻辑,也可以单行调整实现:

df[['col1', 'col2']] = df.col.str.split(',', expand=True).apply(lambda x: [None, x.iloc[0]] if x.iloc[1] is None else x, axis=1)

该方案可读性更高,但行级apply在数据量较大时运行效率低于正则提取方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 16:36:06