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

对Pandas DataFrame执行explode时出现ValueError: column must be a scalar错误

问题:Pandas explode报错ValueError: column must be a scalar

执行explode操作时触发上述错误,操作前的DataFrame如下:

Acc # Match Length        Gene      Identity (%)
0             CP034360.1        [312]     [b4172]          [88.462]
1             CP098173.1  [1655, 180]  [rne, rne]  [84.955, 85.556]
2         NTCW01000078.1        [986]      [recA]          [90.974]
3   NZ_JASISD010000003.1        [312]     [b4172]          [88.462]
4         PEGY01000004.1  [1619, 183]  [rne, rne]  [85.238, 85.246]
5         PEHS01000009.1        [312]     [b4172]          [87.500]
6         PEHS01000011.1       [1608]       [rne]          [85.759]
7         PEHV01000004.1       [1014]      [recA]          [90.335]
8         PEHV01000005.1       [2417]      [gyrB]          [88.746]
9         PEHV01000008.1        [312]     [b4172]          [87.500]
10        VOOC01000097.1       [2423]      [gyrB]          [88.816]

报错命令:

b_df.explode(['Match Length', 'Gene', 'Identity (%)'])

解决思路
  • 错误根本原因:你的Pandas版本低于1.3.0。explode支持传入多列列表是1.3.0版本才新增的功能,低版本仅接受单个列名(标量),传列表就会触发column must be a scalar错误。

方案1:升级Pandas版本

执行以下命令升级到支持多列explode的版本:

pip install --upgrade pandas

升级后直接运行你原来的代码即可正常执行,会同时将指定的多列按列表拆分。

方案2:兼容低版本的写法

如果无法升级版本,可对每一列依次执行explode:

b_df.explode('Match Length').explode('Gene').explode('Identity (%)')

⚠️ 注意:需确保每行的这三个列的列表长度完全一致,否则会出现数据错位问题(你的数据满足此条件,可安全使用)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:22:41