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

如何使用Pandas拆分CSV中可变商品的单行数据为多行并清理价格列

搞定可变商品行展开+价格格式修复的方案

嘿,针对你提到的需求——把CSV里的可变商品(比如Car model145)的标题和对应的价格、颜色行展开,同时保留图片列不拆分,还要修复价格列里多余的逗号,我用Python的pandas库整理了一套可行的步骤,直接就能用:

步骤1:先把示例数据转成DataFrame

首先咱们先把你给的示例数据导入成pandas的DataFrame:

import pandas as pd

# 模拟你的原始数据
raw_data = {
    'title': ['Car model145'],
    'price': ['2,54.00,852.00,2532.00'],
    'color': ['black,white,blue'],
    'image': ['car image url']
}
df = pd.DataFrame(raw_data)

步骤2:修复价格列的错误逗号

价格列里的2,54.00明显是格式错误,咱们用正则把数字中间的逗号去掉:

# 移除数字之间的逗号(比如把2,54.00改成254.00)
df['price'] = df['price'].str.replace(r'(?<=\d),(?=\d)', '', regex=True)

这一步处理后,价格列就变成了254.00,852.00,2532.00,可以正常拆分了。

步骤3:拆分并展开价格、颜色列

接下来把价格和颜色列按逗号拆成列表,然后用explode方法把对应的行展开,标题和图片列会自动跟着重复:

# 把字符串拆成列表
df['price'] = df['price'].str.split(',')
df['color'] = df['color'].str.split(',')

# 同时展开两个列表列,重置索引
df = df.explode(['price', 'color'], ignore_index=True)

步骤4:处理图片列(仅保留第一行的链接)

按照你的要求,图片列不展开,只有第一行保留链接,其他行留空:

# 只有索引为0的行保留图片链接,其余设为空字符串
df['image'] = df['image'].where(df.index == 0, '')

最终效果

运行完上面的代码,你就能得到想要的结果啦:

title    price  color          image
0  Car model145   254.00  black  car image url
1  Car model145   852.00  white              
2  Car model145  2532.00   blue              

如果你的实际CSV里有更多可变商品,这个方法也能批量处理,只要保证每个商品的价格和颜色数量对应一致就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:02:39