在处理上述异常期间,发生了另一个异常。python

在处理上述异常期间,发生了另一个异常。python,python,Python,我有一个有7列的数据框,我编写了一个脚本,根据“Year.1”的不同值创建多个子数据框 数据如下所示: Month | Product | Product number | Retailer site code | Revenue | Dealer ID | Year.1 January Beaufort 87110 20021 1500 1222 2018 ... ... ... 第1年列的范围为201

我有一个有7列的数据框,我编写了一个脚本,根据“Year.1”的不同值创建多个子数据框

数据如下所示:

Month  | Product | Product number | Retailer site code  | Revenue | Dealer ID | Year.1 
January  Beaufort      87110                20021           1500      1222       2018
...
...
...
第1年列的范围为2018-2022年,我在if/else声明中对此进行了说明


这是我写的函数,但它给出了一个错误”在处理上述异常时,另一个异常发生了:“我不知道如何解决这个问题,我已经用谷歌搜索了很长时间,但仍然找不到解决方法。请帮忙

yr18 = pd.DataFrame()
yr19 = pd.DataFrame()
yr20 = pd.DataFrame()
yr21 = pd.DataFrame()
yr22 = pd.DataFrame()

for i in range(len(df)+1):
    if df['Year.1'][i] == 2018:
        yr18.append(df[i])

    elif df['Year.1'][i] == 2019:
        yr19.append(df[i])

    elif df['Year.1'][i] == 2020:
        yr20.append(df[i])

    elif df['Year.1'][i] == 2021:
        yr21.append(df[i])

    elif df['Year.1'][i] == 2022:
        yr22.append(df[i]) 

“在处理上述异常期间,发生了另一个异常”实际上不是一个对调试有用的错误。请在您的问题中包含完整的错误回溯,而不仅仅是一行这样说的,我猜这是一个
KeyError
,因为您的数据帧没有列
df['0']
,这是
df[I]
在循环的第一次迭代中试图访问的内容。尝试布尔索引而不是循环。查看
df[df['year.1']==2018]
您可能不需要为此使用列表,它们很少是正确的选择。我建议您阅读熊猫文档。@G.Anderson您建议的解决方案效果很好。谢谢