【问题标题】:Python - Incorrect df. iloc[:, 0]Python - 不正确的 df。 iloc[:, 0]
【发布时间】:2022-07-11 23:50:09
【问题描述】:

我的 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 列?

【问题讨论】:

标签: python


【解决方案1】:

您的问题:

根据提供的信息,您的“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']] 引用它

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2020-10-16
    • 2021-03-06
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多