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

Pandas创建DataFrame报错ValueError:使用标量值需传入索引如何解决?

问题修复方案

问题原因

不是Pandas源码问题,是版本差异导致的行为变化。旧版Pandas会自动为全标量值的字典生成默认索引,但新版Pandas要求你显式指定索引——因为它无法判断你是要把字典的键作为列名还是行索引。

三种修复方法

方法1:将字典包装成列表(推荐,最直观)

把字典放到列表里,明确告诉Pandas这是一行数据:

import pandas 

students = {"Adi": 32, "Ron" : 64, "Jonny": 34} 

student_dataframe = pandas.DataFrame([students]) 

print(student_dataframe)

输出:

Adi  Ron  Jonny
0   32   64     34

方法2:显式指定index参数

直接给DataFrame构造函数传index参数,指定索引长度:

import pandas 

students = {"Adi": 32, "Ron" : 64, "Jonny": 34} 

student_dataframe = pandas.DataFrame(students, index=[0]) 

print(student_dataframe)

输出和方法1一致。

方法3:将键作为行索引(如果你的需求是这样)

如果想把学生名字作为行索引、分数作为单列,可以用from_dict方法:

import pandas 

students = {"Adi": 32, "Ron" : 64, "Jonny": 34} 

student_dataframe = pandas.DataFrame.from_dict(students, orient='index', columns=['Score']) 

print(student_dataframe)

输出:

Score
Adi       32
Ron       64
Jonny     34

为什么之前代码正常?

旧版Pandas(比如v0.23.x及更早)会自动为全标量字典创建一个[0]的默认索引,新版Pandas(v1.0+)为了避免歧义,强制要求显式声明索引,所以现在运行会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:08:18