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

如何将DataFrame单列拆分为4列?现有拆分方法存问题求修正

解决DataFrame单列拆分多列的问题

你的问题出在拆分时使用单个空格作为分隔符,当Part_no缺失时,后续内容会错误填充到Part_no列。正确的做法是用正则表达式匹配任意数量的空白字符拆分,确保前三个字段对应Item、Qty、Part_no,剩余内容合并到Description。

修正代码

data_df[['Item', 'Qty', 'Part_no', 'Description']] = data_df["Dump"].str.split(r'\s+', n=3, expand=True)

原理说明

  • r'\s+':匹配一个或多个连续空白字符(包括空格、制表符等),解决了原始数据中分隔符数量不统一的问题。
  • n=3:最多拆分3次,将字符串拆分为4个部分——前三个对应Item、Qty、Part_no,最后一个保留所有剩余内容(包括Description中的空格)。

验证效果

针对DATA1

拆分后结果与期望输出1完全一致:

Item  Qty  Part_no  Description             
12525  2    153898   Winch
24798  1    147654   Gear
65116  4             Screw 
46456  1             Rowing
46563  5             Nut       

针对DATA2

拆分后结果与期望输出2完全一致:

Item  Qty  Part_no  Description             
12525  2    153898   Winch Gear
24798  1    147654   Gear nuts
65116  X             Screw bolts
46456  1             Rowing rings
46563  X             Nut       

原代码失效原因

原代码str.split(" ", 3, expand=True)存在两个问题:

  1. 单个空格作为分隔符时,多连续空格会生成空字符串元素,maxsplit=3的规则会让缺失Part_no的行中,Description被错误分配到Part_no列。
  2. 无法保留Description中的空格(比如DATA2里的"Winch Gear"会被拆分为两部分)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:40:29