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

pandas双分隔符拆分列产生多余空列及中间值提取方法

问题根因

直接使用单个!作为分隔符拆分字符串时,字符串首尾的!、有效值之间连续的!!都会被判定为分隔边界,因此会生成大量无意义的空值列。

实现方案

1. 正确拆分得到三色组合列

先清洗掉每行字符串首尾多余的!,再以连续的!!作为分隔符做拆分,即可直接得到目标结构,代码如下:

import pandas as pd

# 提取目标列后先去除首尾的感叹号
color_series = df['!Color1:Color2:Color3!'].str.strip('!')
# 以连续两个感叹号为分隔符拆分,自动展开为多列
color_combo_df = color_series.str.split('!!', expand=True)

运行上述代码后输出的结果,就和预期的三色组合结构完全一致,无多余空列。

2. 提取每个三色组合的中间颜色

每个非空单元格的内容均为首色:中间色:尾色的冒号分隔格式,对每个单元格按冒号拆分后取索引为1的元素,即可得到中间色结果:

# 遍历所有列,对非空值拆分取中间位
middle_color_df = color_combo_df.apply(
    lambda col: col.str.split(':', expand=True)[1]
)

执行后输出的结果就是需要的仅保留中间颜色的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:21:27