【问题标题】:KeyError: 0 in pandasKeyError:熊猫中的0
【发布时间】:2021-01-18 02:22:34
【问题描述】:

waste['GDP ($M)'] - 我在表格中的列 表“废物”由 161 行组成 错误在第 3 行(有条件)。它存在表“真”值,但我不明白问题出在哪里。 我应该对我的代码进行哪些更改?

此外,我将表中的值从科学记数法更改为浮点数,因此我的 NaN 值更改为“nan”

column = pd.isna(waste['GDP ($M)'])
gdp_nan = []
for row in range(len(waste)):
    if column[row] == True:
        gdp_nan.insert(row, row)
print(gdp_nan)

【问题讨论】:

  • 如您所见,索引从 2 开始,我不知道您的约束,但将 range(len(waste)) 更改为 range(2, len(waste)) 可以解决它。什么是你想达到什么目标?
  • 第一个语句是isna(),所以这个语句的列是布尔值。我试图记录所有索引,其中 GDP 为“NaN”值。谢谢,因为你的建议,我解决了我的问题。
  • 如果gdp_nan.insert(row, row) 不会将值放在所需的索引处,您可以将其更改为gdp_nan.append(row)。要使用insert,您必须创建一个非空列表,它将替换所需位置的值

标签: python pandas dataframe


【解决方案1】:

正如 cmets 中所说,更改 range(2, len(waste)) 然后,我有 KeyError 21,这意味着 21 记录不存在。 你应该重新索引你的数据框。

waste = waste.reset_index(drop = True)

这样,循环就可以正常工作了

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 2019-12-20
    • 2021-05-23
    • 2018-02-19
    • 2020-05-28
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多