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

如何将含二维数组值的字典转换为Pandas DataFrame?

解决字典转Pandas DataFrame时的ValueError问题

问题场景

我有一个以字符串为键、二维数组为值的字典,示例代码如下:

import numpy as np
import pandas as pd

dic = {'x': np.array([[10],
       [27],
       [12],
       [132]]), 'y': np.array([[-39],
       [23],
       [42],
       [98]]), 'z': np.array([[-100],
       [-123],
       [92],
       [88.2]])}

希望将其转换为如下格式的Pandas DataFrame:

iter x   y   z 
0   10 -39 -100
1   27  23 -123
2   12  42   92
3   132 98  88.2

执行df = pd.DataFrame.from_dict(dic)时,触发错误:

ValueError: Per-column arrays must each be 1-dimensional

错误原因

字典中每个值都是形状为(4,1)的二维数组,但pd.DataFrame.from_dict要求作为列的数组必须是一维结构,维度不匹配导致报错。

解决方案

提供两种简洁的处理方式:

方式一:展平二维数组为一维

遍历字典,用numpy的ravel()方法将每个二维数组转成一维,再传入from_dict:

# 处理字典,展平所有数组
processed_dic = {key: val.ravel() for key, val in dic.items()}
df = pd.DataFrame.from_dict(processed_dic)
# 设置索引名称
df.index.name = 'iter'

方式二:直接使用DataFrame构造函数

跳过from_dict,直接将字典传入pd.DataFrame构造函数,它会自动适配二维数组的维度:

df = pd.DataFrame(dic)
df.index.name = 'iter'

两种方式都能生成目标格式的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:50:44