Python 如果仅指定行索引,则使用嵌套dict初始化的数据帧将失败

Python 如果仅指定行索引,则使用嵌套dict初始化的数据帧将失败,python,pandas,dataframe,Python,Pandas,Dataframe,我尝试指定使用nexted dict初始化的数据帧的行索引 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' 但是,如果我还指定了列,它将起作用 我想知道这是否只是熊猫身上的一只

我尝试指定使用nexted dict初始化的数据帧的行索引

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'
但是,如果我还指定了列,它将起作用

我想知道这是否只是熊猫身上的一只虫子。因为我确信它肯定能在Python3.5和我的旧版本pandas(不确定早期版本)上运行。 我正在运行Python 3.6.5和0.23.3


这个例子实际上来自Wes McKinney的书《Python用于数据分析》(第二版)。

您不需要将索引指定为
0.23.0
就知道内键是索引

pop={'Nevada': {2001: 2.4, 2002: 2.9}, 'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
df = pd.DataFrame(pop)

Nevada  Ohio
2000    NaN 1.5
2001    2.4 1.7
2002    2.9 3.6

您不需要将索引指定为
0.23.0
将知道内键是索引

pop={'Nevada': {2001: 2.4, 2002: 2.9}, 'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
df = pd.DataFrame(pop)

Nevada  Ohio
2000    NaN 1.5
2001    2.4 1.7
2002    2.9 3.6

我在Python3.7.1和pandas 0.23.4中重现了这个问题

本代码部分的目的是澄清索引顺序可以人为分配

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

应该可以工作。

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

本代码部分的目的是澄清索引顺序可以人为分配

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

应该有效。

我不能重现这个问题我用Python 3.5.5重现了这个问题。我不能重现这个问题我用Python 3.5.5重现了这个问题。重点是,我应该能够指定或选择索引的子集。重点是,我应该能够指定或选择索引的子集。