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

如何在Python Pandas DataFrame中拆分列生成新行?

在Pandas中拆分DataFrame列并生成新行的最佳实现方法

针对你需要拆分SKU列、将多值行拆分为单独行的需求,最简洁高效的实现方式是结合str.split()和explode()方法,具体步骤如下:

1. 构造输入DataFrame

先把你提供的输入数据转换成Pandas DataFrame:

import pandas as pd

df = pd.DataFrame({
    'SKU': ['YY-123-671', 'YY-345-111-WH,YY-345-111-RD,YY-345-111-BL', 'LK-896-001'],
    'Quantity': [5, 10, 1],
    'Name': ['抽屉', '书桌', '台灯']
})

2. 拆分并生成新行

核心代码一行搞定:

df = df.assign(SKU=df['SKU'].str.split(',')).explode('SKU', ignore_index=True)
  • str.split(','):将SKU列中用逗号分隔的字符串拆分为列表;
  • assign():把拆分后的列表替换原SKU列;
  • explode('SKU'):将列表中的每个元素单独拆成一行,同时自动复制对应行的Quantity和Name值;
  • ignore_index=True:重置结果的索引,避免出现重复索引。

3. 验证结果

执行后得到的DataFrame完全符合你的期望输出:

SKUQuantityName
YY-123-6715抽屉
YY-345-111-WH10书桌
YY-345-111-RD10书桌
YY-345-111-BL10书桌
LK-896-0011台灯

旧版本Pandas兼容方案

如果你的Pandas版本低于0.25(explode()是0.25版本新增的),可以用以下替代方法:

df = df.set_index(['Quantity', 'Name'])['SKU'].str.split(',', expand=True).stack().reset_index().rename(columns={0: 'SKU'}).drop('level_2', axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:30:38