无法直接将字典转为DataFrame?ValueError报错原因咨询
问题原因与解决方法
错误原因
你使用的dict.items()会返回由键值对组成的二元组列表,格式类似[('carat', 0.3), ('cut', 64.0), ...],每组只有2个元素。但你给columns参数传了9个列名,数据的列数(2)和指定的列数(9)不匹配,因此触发ValueError报错。
你的字典是单条记录的键值映射(每个键对应单个值),并非多行列数据的结构,所以不能直接用dict.items()来构造DataFrame。
正确转换方式
针对这种单条记录的字典,有几种简单的正确写法:
- 将字典包裹在列表中传入
pd.DataFrame(最直观的方式):
import pandas as pd dict_data = { "carat": 0.3, "cut": 64.0, "color": 55.0, "clarity": 4.25, "depth": 4.28, "table": 2.73, "x": 2.0, "y": 1.0, "z": 6.0 } novo = pd.DataFrame([dict_data])
- 使用
from_dict方法并转置:
novo = pd.DataFrame.from_dict(dict_data, orient='index').T
- 将每个值转为列表形式:
novo = pd.DataFrame({k: [v] for k, v in dict_data.items()})
内容的提问来源于stack exchange,提问作者user15235239
相关产品推荐
相关产品推荐

