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

使用index、X、y创建DataFrame时遇ValueError维度错误求助

解决创建嵌套列表DataFrame的维度错误

问题背景

需要用index、X、y变量创建目标结构的DataFrame,但运行代码时抛出维度错误:

Length of index, X, Y:  6 6 6

ValueError: Data must be 1-dimensional, got ndarray of shape (6, 1) instead

错误代码:

import pandas as pd
import numpy as np

df_idx1 = [[3], [4], [5], [6], [7], [8]]
X1 = [
    [[10], [20], [30]],
    [[20], [30], [40]],
    [[30], [40], [50]],
    [[40], [50], [60]],
    [[50], [60], [70]],
    [[60], [70], [80]]
]
y1 = [[[40]], [[50]], [[60]], [[70]], [[80]], [[90]]]

print("Length index, X, Y: ", len(df_idx1), len(X1), len(y1))
print("df_idx1",df_idx1)
print("X1",X1)
print("y1",y1)
exdf1 = pd.DataFrame(data={"X":np.array(X1),"y":np.array(y1)},index=df_idx1)

错误原因

  1. Index维度问题:df_idx1是二维列表(每个元素是单元素子列表),pandas要求索引为一维结构
  2. 数据列维度问题:np.array(X1)生成(6,3,1)维度的数组,np.array(y1)生成(6,1,1)维度的数组,而DataFrame的列需要是一维结构(每个元素为独立的嵌套列表对象)

修正方案

将索引转换为一维列表,同时直接使用原嵌套列表作为列数据(避免numpy数组的多维度干扰):

import pandas as pd
import numpy as np

df_idx1 = [[3], [4], [5], [6], [7], [8]]
X1 = [
    [[10], [20], [30]],
    [[20], [30], [40]],
    [[30], [40], [50]],
    [[40], [50], [60]],
    [[50], [60], [70]],
    [[60], [70], [80]]
]
y1 = [[[40]], [[50]], [[60]], [[70]], [[80]], [[90]]]

# 处理索引为一维列表
processed_index = [idx[0] for idx in df_idx1]
# 直接使用原嵌套列表构造DataFrame
exdf1 = pd.DataFrame(data={"X": X1, "y": y1}, index=processed_index)

print(exdf1)

输出结果

X        y
3  [[10], [20], [30]]  [[40]]
4  [[20], [30], [40]]  [[50]]
5  [[30], [40], [50]]  [[60]]
6  [[40], [50], [60]]  [[70]]
7  [[50], [60], [70]]  [[80]]
8  [[60], [70], [80]]  [[90]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:52:55