【Python报错】ValueError: If using all scalar values, you must pass an index

问题:

1、ValueError: If using all scalar values, you must pass an index。意思是:如果使用所有标量值,则必须传递索引

2、再看错误发生代码位置

 

3、解读:直接传入标称属性为value的字典需要写入index,也就是说,需要在创建DataFrame对象时设定index。

原因:这是因为 pandas 的 DataFrame 方法需要传入一个可迭代的对象(列表,元组,字典等), 

解决方案:

给DataFrame 指定 index 参数可解决

其他解决方案:

import pandas as pd

#方法一:直接在创建DataFrame时设置index即可
dict = {'a':1,'b':2,'c':3}
data = pd.DataFrame(dict,index=[0])
print(data)

#方法二:通过from_dict函数将value为标称变量的字典转换为DataFrame对象
dict = {'a':1,'b':2,'c':3}
pd.DataFrame.from_dict(dict,orient='index').T
print(data)

#方法三:输入字典时不要让Value为标称属性,把Value转换为list对象再传入即可
dict = {'a':[1],'b':[2],'c':[3]}
data = pd.DataFrame(dict)
print(data)

#方法四:直接将key和value取出来,都转换成list对象
dict = {'a':1,'b':2,'c':3}
pd.DataFrame(list(dict.items()))
print(data)

 

posted @ 2021-06-22 21:06  程序员龙一  阅读(1618)  评论(0编辑  收藏  举报