Python常见错误:ValueError: If using all scalar values, you must pass an index(四种解决方案)


经常遇到问题 ValueError: If using all scalar values, you must pass an index,因为pandas 的dataframe需要一个可迭代的对象
换成列表 或者加个index就可以解决这个问题
 
作者:KavinDotG
链接:https://www.jianshu.com/p/c5165cf900c4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

1、错误发生场景:

import pandas as pd
dict = {'a':1,'b':2,'c':3}
data = pd.DataFrame(dict)
1
2
3
2、错误原因:

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

3、解决方案:

通过字典来创建DataFrame对象是很常见的需求,但是针对不同的对象形式,可能会有不同的写法。看代码,以下这四种方法都是可以修正这个错误,而且产生相同的正确结果,具体使用哪种方法根据自己的需求来选择就好。

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)
————————————————
版权声明:本文为CSDN博主「小白白白又白cdllp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39750084/article/details/81429037


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM