Python: я не знаю, почему это продолжает давать мне KeyError: 5

#python #pandas #matplotlib

#python #pandas #matplotlib

Вопрос:

Вот код, о котором идет речь: я выделил проблемную строку в «e5y.append (er[item 1])». Моя проблема в том, что я не могу увидеть, как эта строка неисправна или почему она выдает ошибку ключа: 5

 def Age_Analysis(x,y,z):
    a1y=[]
    b2y=[]
    c3y=[]
    d4y=[]
    e5y=[]
    xx=[]
    List=[]
    if y >= 1:
        for item in range(y):
            if z == 'range':
                ar = grp1[x].value_counts()
                br = grp2[x].value_counts()
                cr = grp3[x].value_counts()
                dr = grp4[x].value_counts()
                er = grp5[x].value_counts()
                
                a1y.append(ar[item 1])
                b2y.append(br[item 1])
                c3y.append(cr[item 1])
                d4y.append(dr[item 1])
                e5y.append(er[item 1])
                
                xx.append(x "_" str(item 1))
Age_Analysis('Q22',7,'range')
  

Редактировать: я понял это!

Комментарии:

1. er это словарь, который не содержит ключа 5 . вот и все.

2. Да, теперь я понимаю, спасибо!

3. На самом деле, это поднимает другую проблему. Если словарь не содержит ключа 5, как мне сказать python интерпретировать ключ 5 как имеющий значение 0?

4. @JeffreyLin то, что вы ищете, это defaultdict . « >>> из коллекций импортируйте defaultdict >>> mydict = defaultdict(lambda: 0) >>> mydict[5] «

5. просто используйте get . er.get(item 1, 0)