【Python报错】ValueError: If using all scalar values, you must pass an index
- 2021 年 6 月 22 日
- 筆記
- python运行报错记录
问题:
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)