Я работаю с набором данных по показателям оттока сотовых телефонов. Я пытаюсь создать фиктивный код для столбца сокращений состояний в наборе данных с формой 3333 строки × 20 столбцов. Мне нужно пропустить один из столбцов кодированных состояний, чтобы он служил в качестве «справочного» столбца для использования в моделировании. Я думаю, что должно произойти, столбец должен быть создан для каждой строки, и 1 поставить на место в строке, которая соответствует недавно созданному фиктивному столбцу. В настоящее время я получаю 0 в каждой строке, кроме первой строки, которая заполнена всеми 1. Мне нужно как-то получить фиктивные переменные, чтобы включить маркер в соответствующий столбец для каждой строки. Я также думаю, что я должен объединить столбцы, чтобы они были уникальными (в данном случае по одному для каждого состояния), но я не уверен, что это будет мешать фиктивному кодированию?
В настоящее время у меня есть следующий код:
1. Создание фиктивных переменных для 'state' и исключение первого фиктивного столбца:
churn_dummies = pd.get_dummies(churn, columns='state', prefix='st').iloc[:,20:]
Возвращает фрейм данных с размером 3333x3332.
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)