Фильтрация столбца объекта в пандах - PullRequest
0 голосов
/ 05 мая 2018

У меня есть набор данных 100000 строк X 200 столбцов. Я хочу выполнить классификацию. Мой целевой столбец является объектом (строкой) и имеет 1345 уникальных значений.

  1. Предположим, что мой целевой столбец - «имена». Я заинтересован в том, чтобы сохранить только следующие имена: Джон, Мэри, Крис, Анна. Как «отфильтровать» мой набор данных, чтобы он содержал только строки с этими именами в целевом столбце?

  2. После фильтрации набора данных я хочу создать классификатор, который будет иметь четыре класса, то есть четыре имени. Я думал об использовании get_dummies, но тогда у меня будет 4 целевых столбца. Я просто хочу преобразовать, например, Джон = 1, Мэри = 2 и т. Д.

Есть идеи?

Большое спасибо

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете использовать pd.DataFrame.loc для фильтрации внутри столбца:

name_set = {'John', 'Mary', 'Chris', 'Anna'}
res = df.loc[df['names'].isin(name_set)]

Вы можете использовать словарь для сопоставления ваших имен с числовыми идентификаторами:

d = {'John': 1, 'Mary': 2, 'Chris': 3, 'Anna': 4}
res['names'] = res['names'].map(d)

Второй шаг также может быть реализован с использованием Категориальные данные посредством извлечения кодов категорий.

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