错误场景
将字典传入DataFrame时报错:ValueError: If using all scalar values, you must pass an index
代码如下
import pandas as pd
data_dict = {'色泽':'青绿','根蒂':'蜷缩','敲声':'浊响','纹理':'稍糊','脐部':'凹陷','触感':'硬滑'}
data = pd.DataFrame(data_dict)
错误原因
直接传入标称属性为value的字典需要写入index,也就是说,需要在创建DataFrame对象时设定index。
解决办法
方法一:设置index参数
import pandas as pd
data_dict = {'色泽':'青绿','根蒂':'蜷缩','敲声':'浊响','纹理':'稍糊','脐部':'凹陷','触感':'硬滑'}
data = pd.DataFrame(data_dict,index=[0])
print(data)
方法二:通过from_dict函数将value为标称变量的字典转换为DataFrame对象
import pandas as pd
data = pd.DataFrame.from_dict(data_dict,orient='index').T
print(data)
将key转换为DataFrame的index,在将DataFrame转置
方法三:输入字典时不要让Value为标称属性,把Value转换为list对象再传入
import pandas as pd
data_dict = {'色泽':['青绿'],'根蒂':['蜷缩'],'敲声':['浊响'],'纹理':['稍糊'],'脐部':['凹陷'],'触感':['硬滑']}
data = pd.DataFrame(data_dict)
print(data)
将value的数组下标作为DataFrame的index