Одна горячая кодировка со многими категориями - PullRequest
0 голосов
/ 11 октября 2019

У меня есть категорический набор данных, который я пытаюсь преобразовать в числовой формат. Я попробовал общее горячее кодирование, но это привело к огромным размерам. Поэтому я ограничиваю свою кодировку 8 верхними категориями в каждом параметре.

Так что я перебираю каждый столбец. Но я получаю сообщение об ошибке в data_prep_text.i.value_counts.

for i in data_prep_text.columns:
    if len(data_prep_text[i].unique())>7:
        top8=[j for j in data_prep_text.i.value_counts(ascending=False.head(8)).index]
        for label in top8:
            data_prep_text[label]=np.where(data_prep_text[i]==label,1,0)
    else:
        data_prep_text[i]=0

Это ошибка, с которой я сталкиваюсь:

AttributeError                            Traceback (most recent call last)
<ipython-input-56-e25949bef086> in <module>
      1 for i in data_prep_text.columns:
      2     if len(data_prep_text[i].unique())>7:
----> 3         top8=[j for j in data_prep_text.i.value_counts(ascending=False.head(8)).index]
      4         for label in top8:
      5             data_prep_text[label]=np.where(data_prep_text[i]==label,1,0)

~/anaconda3_501/lib/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
   4374             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   4375                 return self[name]
-> 4376             return object.__getattribute__(self, name)
   4377 
   4378     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'i'

'' '

Если япринимает «Соседство». Код не принимает значение i и делает его похожим на data_prep_text.Neighborhood.value_counts.

1 Ответ

0 голосов
/ 11 октября 2019

Вы должны использовать скобки, чтобы избежать этой проблемы и удалить метод head и заменить его, взяв первые 8 значений, используя нарезку

top8=[j for j in data_prep_text[i].value_counts(ascending=False)[:8].index]

Когда вы делаете data_prep_text.i, этоэквивалент data_prep_text['i'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...