【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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值