Pandas Get_dummies для вложенных таблиц

Я хочу использовать функцию pandas get_dummy () для кодирования (довольно обширного) набора категориальных переменных. Однако данные в настоящее время находятся в формате вложенных таблиц. Это означает, что каждая строка представляет собой другой экземпляр переменной, например

Instance, Cat_Col 1, John 1, Smith 2, Jane 3, Joe 

Теперь я могу сгенерировать полный список уникальных переменных, которые я могу использовать для get_dummies, которые представляют все возможные значения. Однако преобразование вложенной таблицы в одну строку экземпляра в этом новом формате дает мне некоторые проблемы.

Любая помощь очень ценится Спасибо

Изменить: каждый экземпляр должен иметь фиктивный результат кодирования для всех значений Cat_col

Идея была бы результатом того, что один вектор функции

 Instance,Col_John,Col_Smith,Col_Jane,Col_Joe 1,1,1,0,0 2,0,0,1,0 3,0,0,0,1 

Я считаю, что это правильное кодирование, предполагая, что мы делаем 1-горячую кодировку

One Solution collect form web for “Pandas Get_dummies для вложенных таблиц”

Вы можете рассмотреть возможность использования pivot_table для достижения своей цели здесь.

 import pandas as pd df Out[10]: Instance Cat_Col 0 1 John 1 1 Smith 2 2 Jane 3 3 Joe df['count'] = 1 df.pivot('Instance', 'Cat_Col', 'count').fillna(0) Out[11]: Cat_Col Jane Joe John Smith Instance 1 0 0 1 1 2 1 0 0 0 3 0 1 0 0 

Если вы предпочитаете использовать get_dummies ,

 result = pd.get_dummies(df.Cat_Col) result['Instance'] = df.Instance result = result.set_index('Instance') result.groupby(level=0).apply(max) Out[26]: Jane Joe John Smith Instance 1 0 0 1 1 2 1 0 0 0 3 0 1 0 0 
  • Получить определенную строку как серию из pandas dataframe
  • pandas groupby для вложенного json
  • Сохранение результатов прогнозирования в CSV
  • pandas dataframe столбцы масштабирования с помощью sklearn
  • Ряды фильтров Pandas
  • Pandas DataFrame - желаемый индекс имеет повторяющиеся значения
  • pandas TimeSeries diff () возвращается к серии
  • Итерация через Pandas Groupby и слияние данных
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.