Сохранять порядок столбцов при одноразовом кодировании с использованием pandas.get_dummies - PullRequest
0 голосов
/ 04 апреля 2019

Каков наилучший / самый Pythonic способ горячего кодирования категориальных объектов в фрейме данных Pandas при сохранении исходного порядка столбцов, из которых извлекаются категории (новые имена столбцов)?

ДляНапример, если у меня есть три столбца в моем фрейме данных (df0): ["Col_continuous", "Col_categorical", "Labels"], и я использую

df1hot = pd.get_dummies(df0, columns = ["Col_categorical"])

новые данныерамка имеет только что созданные столбцы, появляющиеся после столбца «Метки».Я хочу, чтобы новые столбцы располагались между "Col_continuous" и "Labels".

Для надежности я хочу, чтобы порядок сохранялся при работе с фреймами данных с категориальными столбцами, произвольно упорядоченными среди остальных столбцов. Например, для ["Cont1", "Cat1", "Cont2", "Cont3", "Cat2", "Labels"], я хочу, чтобы новые столбцы, следующие из "Cat1", находились между "Cont1" и "Cont2".Предположим, что у меня уже есть переменная, скажем categoryoricalCols , которая представляет собой список имен категориальных признаков.

Редактировать 1: изменено df1hot = pd.get_dummies(df0, columns = ["Col_continuous"]) на df1hot = pd.get_dummies(df0, columns = ["Col_categorical"]) благодаря комментарию Хуана С.

Редактировать 2: добавлен абзац, начинающийся с "Для надежности ..."

1 Ответ

1 голос
/ 04 апреля 2019

IIUC Я хотел бы пойти с чем-то вроде этого:

df.columns=['Col_continuous',*[i for i in df.columns if 'Col_categorical' in i], 'Labels']

Это говорит пандам поместить каждый столбец, созданный get_dummies, в середину df.columns

...