Создать фиктивные столбцы для столбца и объединить его с набором данных - PullRequest
1 голос
/ 01 марта 2020

Я работаю с набором данных по показателям оттока сотовых телефонов. Я пытаюсь создать фиктивный код для столбца сокращений состояний в наборе данных с формой 3333 строки × 20 столбцов. Мне нужно пропустить один из столбцов кодированных состояний, чтобы он служил в качестве «справочного» столбца для использования в моделировании. Я думаю, что должно произойти, столбец должен быть создан для каждой строки, и 1 поставить на место в строке, которая соответствует недавно созданному фиктивному столбцу. В настоящее время я получаю 0 в каждой строке, кроме первой строки, которая заполнена всеми 1. Мне нужно как-то получить фиктивные переменные, чтобы включить маркер в соответствующий столбец для каждой строки. Я также думаю, что я должен объединить столбцы, чтобы они были уникальными (в данном случае по одному для каждого состояния), но я не уверен, что это будет мешать фиктивному кодированию?

В настоящее время у меня есть следующий код:

1. Создание фиктивных переменных для 'state' и исключение первого фиктивного столбца:

churn_dummies = pd.get_dummies(churn, columns='state', prefix='st').iloc[:,20:]

Возвращает фрейм данных с размером 3333x3332.
A screenshot of the churn_dummies dataframe can be found here.

st_OH   st_NJ   st_OH   st_OK   st_AL   st_MA   st_MO   st_LA   st_WV   st_IN   st_RI
0   1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

This Кажется, что результат продолжается через весь созданный гигантский c фрейм данных, и из выборочных проверок строки, похоже, не содержат соответствующих единиц, помеченных соответствующим столбцом. Я использовал следующее pandas do c: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.get_dummies.html

2. Затем объединяем столбцы на фрейме данных:

churn = pd.concat([churn, churn_dummies], axis=1)

1 Ответ

0 голосов
/ 02 марта 2020

Я разобрался в проблеме. При вводе аргумента столбцов, имя столбца, на которое ссылаются, должно иметь квадратные скобки вокруг имени ['state'], чтобы вызвать метод get_dummies для этого столбца.

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