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

无法直接将字典转为DataFrame?ValueError报错原因咨询

问题原因与解决方法

错误原因

你使用的dict.items()会返回由键值对组成的二元组列表,格式类似[('carat', 0.3), ('cut', 64.0), ...],每组只有2个元素。但你给columns参数传了9个列名,数据的列数(2)和指定的列数(9)不匹配,因此触发ValueError报错。

你的字典是单条记录的键值映射(每个键对应单个值),并非多行列数据的结构,所以不能直接用dict.items()来构造DataFrame。

正确转换方式

针对这种单条记录的字典,有几种简单的正确写法:

  1. 将字典包裹在列表中传入pd.DataFrame(最直观的方式):
import pandas as pd

dict_data = {
    "carat": 0.3,
    "cut": 64.0,
    "color": 55.0,
    "clarity": 4.25,
    "depth": 4.28,
    "table": 2.73,
    "x": 2.0,
    "y": 1.0,
    "z": 6.0
}

novo = pd.DataFrame([dict_data])
  1. 使用from_dict方法并转置:
novo = pd.DataFrame.from_dict(dict_data, orient='index').T
  1. 将每个值转为列表形式:
novo = pd.DataFrame({k: [v] for k, v in dict_data.items()})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:20:25