Python 如果仅指定行索引,则使用嵌套dict初始化的数据帧将失败
我尝试指定使用nexted 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' 但是,如果我还指定了列,它将起作用 我想知道这是否只是熊猫身上的一只
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重现了这个问题。重点是,我应该能够指定或选择索引的子集。重点是,我应该能够指定或选择索引的子集。