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

Python如何分割含空值的字符串并拆分为pandas两列

Pandas 拆分混合规则字符串列实现方案

核心逻辑是基于两类值的明确规则,用正则分别定向提取,不需要做多轮字符串拆分,兼容性好。
两类值的匹配规则:

  • 两位字母编码:匹配连续2位大写英文字母
  • Y/E标识:匹配独立出现的Y或E字符,避免误匹配两位编码内含的Y、E字母

完整实现代码

import pandas as pd

# 原始数据
df = pd.DataFrame({
    'col1': ['AD', 'Y', 'E', 'AD E', 'WZ E']
})

# 提取两位字母编码,未匹配到填充空字符串
df['col1_new'] = df['col1'].str.extract(r'([A-Z]{2})', expand=False).fillna('')
# 提取独立的Y/E标识,未匹配到填充空字符串
df['col2_new'] = df['col1'].str.extract(r'\b([YE])\b', expand=False).fillna('')

代码说明

  • 正则([A-Z]{2})会抓取字符串中出现的连续两位大写字母,适配编码单独出现、编码和标识用空格分隔的场景
  • 正则\b([YE])\b中的\b是单词边界符,保证只会抓取单独成段的Y/E,不会把两位编码(比如YE、EY)里的单个字母误识别为标识
  • .fillna('')会把匹配失败的缺失位置统一填充为空字符串,和预期输出格式完全一致

输出验证

运行代码后得到的结果和示例预期完全匹配:

col1col1_newcol2_new
ADAD
YY
EE
AD EADE
WZ EWZE

如果存在两类值连写无分隔的特殊场景(比如ADE代表编码AD+标识E),只需要把标识列的匹配正则调整为r'([YE])$'(匹配字符串末尾的Y/E)即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:42:40