Incorrect df. iloc[:, 0]



我的df有以下列

ID  Number  Name
11  ccc-456  dfg
45  ggt-56   ggg
33  67889    ttt

当我创建一个新的数据帧时(需要它来与另一个数据帧合并)

df2 = df[['ID', 'Number']]

我收到一条错误消息,说ID不在索引中。但是当我打印(df)时,我确实看到了ID列。

当我运行索引时df3 = df.iloc[:, 0]我在结果中看到前两列ID和Number

ID
24        32666
188       33432
401       34341
448       34490
510       34713
...  
14062    108789
14204    110710
14651    116332
14678    116733
14726    117600
Name: NUMBER, Length: 28149, dtype: int64

为什么我可以访问ID列?

您的问题:

根据所提供的信息;ID";列设置为数据帧索引。

如果您运行此测试代码,您将得到与您描述的相同的错误。

test_dict = {
'ID': [11,45,33],
'Number': ['ccc-456','ggt-56','67889'],
'Name': ['dfg','ggg','ttt']
}
df = pd.DataFrame(test_dict).set_index('ID')
df2 = df[['ID', 'Number']]

解决方案

最简单的解决方案是在创建df2之前执行df.reset_index(inplace = True)。这将给你";ID";作为列,以便您可以根据需要使用df2 = df[['ID', 'Number']]引用它

相关内容

  • 没有找到相关文章

最新更新