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

如何将pandas DataFrame中的元组列拆分为两个独立列

报错原因及解决方法

Shape of passed values is (12, 1), indices imply (12, 2)
该报错的核心逻辑是:你从df_partes1[1]列转换得到的列表是12行1列的结构,和你指定的2个列名不匹配。说明df_partes1[1]列的每个元素长度只有1,不是你预期的可以拆分为2个值的结构,最常见的原因是待拆分的字符串列没有提前按分隔符切割。

解决步骤

第一步:确认列的分隔符

先确认df_partes1[1]列的字符串是用什么符号分隔两个值,常见分隔符为逗号、空格、竖线、下划线等,以下以逗号作为分隔符给出示例,你可以根据实际情况替换分隔符。

第二步:两种拆分方案

  • 方案1:更简洁的拆分写法,无需手动构造DataFrame
# expand=True会直接把拆分结果转为DataFrame格式,直接赋值给两个新列即可
df_partes1[['x', 'y']] = df_partes1[1].str.split(',', expand=True)
# 如果你需要把原第0列设为索引,追加下面这行代码
df_partes1 = df_partes1.set_index(0)
  • 方案2:兼容你原有代码的修改写法
# 先把列的字符串按分隔符拆分为长度为2的列表
df_partes1[1] = df_partes1[1].str.split(',')
# 再运行你原来的代码就不会报错
df_partes1 = pd.DataFrame(df_partes1[1].values.tolist(), index=df_partes1[0], columns=['x','y'])

特殊情况处理

如果部分行拆分后长度不足2,可以补充空值避免报错:

# 限制最多拆分1次,缺失值用空字符串填充
df_partes1[['x', 'y']] = df_partes1[1].str.split(',', expand=True, n=1).fillna('')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:27:03