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

Pandas:如何将列转为列表后使用explode函数

问题原因

explode() 未生效的核心原因是:当前price、variations两列存储的是外观和列表一致的字符串,并非Python原生列表类型,pandas无法识别列表内的独立元素,自然不会执行拆分展开操作。

解决步骤
  1. 先将两列的字符串格式值解析为原生列表,推荐使用ast.literal_eval做安全解析,容错率远高于手动字符串分割:
import ast

# 解析字符串为原生列表
df['price'] = df['price'].apply(ast.literal_eval)
df['variations'] = df['variations'].apply(ast.literal_eval)
  1. 执行多列展开操作,可选将价格列转为数值类型,匹配预期输出格式:
# 同时展开两列,重置索引
df = df.explode(['price', 'variations'], ignore_index=True)

# 可选:将价格转为浮点型,去除字符串引号
df['price'] = df['price'].astype(float)
效果验证

执行完成后输出的DataFrame结构完全匹配预期,前两行结果如下:

product_namepricevariations
Cream Deluxe Gold (615g)130.006 PIECES
Cream Deluxe Gold (615g)255.0012 PIECES

注:1. 展开时两列的列表元素会按位置严格一一对应,不会出现价格和规格错位的问题;2. 如果你的pandas版本低于1.3,不支持同时传入多列给explode(),可以分两次执行拆分:df = df.explode('price').explode('variations'),最终效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:45:50