Python KeyError:中的0

Python KeyError:中的0,python,pandas,dataframe,Python,Pandas,Dataframe,浪费['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,

浪费['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,lenwaste 然后,我得到了KeyError21,这意味着21记录不存在。 你应该重新索引你的数据帧

waste = waste.reset_index(drop = True)


这样,循环将很好地工作

,因为您可以看到索引从2开始,我不知道您的约束条件,但将rangelenwaste更改为range2,lenwaste应该解决它。您试图实现什么?有第一个语句isna,因此根据该语句,列是布尔的。我试着记录所有的指数,其中GDP是NaN值。谢谢,由于您的建议,我解决了我的问题。在您的情况下,gdp_nan.insertrow,row不会将值放置在所需的索引中,您可以将其更改为gdp_nan.appendrow。要使用insert,您必须创建一个非空列表,它将替换所需位置的值