Обработка пропущенных значений в pandas кадре данных как входных данных для тензорного потока - PullRequest
0 голосов
/ 26 января 2020

У меня есть датафрейм, который выглядит следующим образом:

    ID    Age    Sex    Loc
1   1     33     F      S
2   2     64     M      C
3   3     49     M      C
4   4            M      S
5   5     31     F      U

Есть другие столбцы, но этого достаточно для вопроса. Я использую это как вход для нейронной сети. Моя проблема - недостающие возрастные значения. Другие столбцы имеют все свои данные, но около 5% пропускают значения возраста по всему набору данных (обучение и тестирование). Я легко могу пропустить эти строки, но это вызывает проблемы позже, когда я хочу связать идентификационный номер из набора тестов с прогнозом, так как индексы больше не совпадают. Итак, как мне очистить этот столбец таким образом, чтобы он мог проходить через NN, не испортив мои результаты? Должен ли я просто принять среднее значение полного набора для всех пустот?

С помощью простого пропуска строк по мере прохождения I l oop и преобразования M / F в 1/0 и Lo c в 0 / 1/2 работало. Моя сеть стала точной на 81%. Мне просто интересно, если поиск способа оставить эти строки сделает его более точным, и, поскольку я углубляюсь глубже, это похоже на то, что часто встречается в реальных данных.

Предположим, что я идиот, когда дело доходит до python, но имеет 21-летний опыт webdev в javascript / angular / database / et c. ;) Спасибо за любые предложения по этому вопросу.

1 Ответ

3 голосов
/ 26 января 2020

Здесь нет ни одного текущего ответа, вам нужно просто попробовать и посмотреть, что работает.

Метод 1: Как вы и предлагали, вы можете удалить все строки с пропущенным значением .

df.dropna(axis=0)

Метод 2: Заполните их постоянным значением, например, 0.

 df.fillna(0)

Метод 3: Заполните их со средним или средним значением столбца

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