首页 > 解决方案 > 如果仅指定行索引,则使用嵌套 dict 初始化的 Pandas DataFrame 失败

问题描述

我尝试指定使用 nexted dict 初始化的 DataFrame 的行索引。

pop={'Nevada': {2001: 2.4, 2002: 2.9}, 'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
pandas.DataFrame(pop, index=[2000,2001,2002])

AttributeError: 'list' object has no attribute 'astype'

但是,如果我还指定列,它将起作用。

我想知道这是否只是熊猫中的一个错误。因为我确信它肯定适用于 Python 3.5 和我的旧版本 pandas(不确定早期版本)。我正在运行 Python 3.6.5、Pandas 0.23.3。

这个例子实际上来自 Wes McKinney 的书《Python for data analysis》(第 2 版)。

标签: pythonpandasdataframe

解决方案


我用 pandas 0.23.4 在 Python 3.7.1 中重现了这个问题。

该代码部分的目的是为了阐明索引的顺序可以人为地分配。

pd.DataFrame(pop, index = pd.Series([2001, 2000, 2002]))

应该管用。


推荐阅读