Как перекодировать числовые в категориальные данные - PullRequest
0 голосов
/ 02 апреля 2019

Я новичок в Python, я изучаю его для целей науки о данных.Прямо сейчас я пытаюсь перекодировать некоторые числовые данные (1,2,3 и т. Д.) В категории.Это требует небольшой петли в конце, но я не могу понять это правильно.Это вызывает ошибку ключа 3.

Набор данных состоит из 21 столбца.

Кто-нибудь может помочь?Спасибо !!

for col_dic in code_list:
col = col_dic[0]
dic = col_dic[1]
values[col] = [dic[x] for x in values[col]]

1 Ответ

0 голосов
/ 03 апреля 2019

Довольно сложно понять, что именно вы хотите увидеть в результате, но причина этой ошибки ясна:

Вы просматриваете список списков.Каждый col_dic содержит col = col_dic[0] (строка типа 'property_type') и dic = col_dic[1] (словарь).В последней строке вы пишете информацию в values dict (я полагаю, вы создали ее раньше).Эта ошибка появляется, потому что dic не содержит определенного ключа из values[col].Например:

values[col] равно {1: [], 2: [], 3: []}, а dic равно {1: 'One', 2: 'Two'}.Когда вы перебираете values[col], вы пытаетесь найти ключ 3 в dic.Но он не содержит ключа 3, поэтому появляется ошибка.Вы должны проверить, что dic содержит этот ключ следующим образом:

values_list = []
for v in values[col]:
    if v in dic:
        values_list.append(dic[v])
values[col] = values_list

Также обратите внимание, что ваши ключи представляют собой строки и представляют собой целые числа.Ваша ошибка может появиться, когда вы попытаетесь найти ключ '3' (строка) в dict содержит ключи, такие как 3 (целые числа).Поэтому я предлагаю вам преобразовать ваши ключи в строки: str(key).

...