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

错误场景
将字典传入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

你可能感兴趣的:(#,Python,常见错误,python,pandas)