2016-11-30 2 views
0

У меня есть столбец в dataframe (df ['Values') с 1000 строками с повторяющимися кодами A30, A31, A32, A33, A34. Я хочу создать пять отдельных столбцов с заголовками colA30, colA31, colA32, colA33, colA34 в одном и том же фрейме данных (df) со значениями 0 или 1 в новых пяти столбцах, созданных на основе того, является ли строка любым из кодов в df ['Значения «].Создайте несколько столбцов на основе значений в одном столбце в Pandas DataFrame

для Ex: ДФ

Values colA30 colA31 colA32 colA33 colA34 
A32  0  0  1  0  0 
A30  1  0  0  0  0 
A31  0  1  0  0  0 
A34  0  0  0  0  1 
A33  0  0  0  1  0 

Таким образом, если строка в ФР [ «Значения»] является A32, то colA32 должен быть 1, а все остальные столбцы должны быть 0 и так далее для остальных столбцов в ф.р. [ 'Значения'].

Я сделал следующее. Но, есть все равно сделать это одним выстрелом, поскольку у меня есть несколько столбцов с несколькими кодами, для которых нужно создать несколько столбцов.

df['A30']=df['Values'].map(lambda x : 1 if x=='A30' else 0) 

df['A31']=df['Values'].map(lambda x : 1 if x=='A31' else 0) 

df['A32']=df['Values'].map(lambda x : 1 if x=='A32' else 0) 

df['A33']=df['Values'].map(lambda x : 1 if x=='A33' else 0) 

df['A34']=df['Values'].map(lambda x : 1 if x=='A34' else 0) 
+3

Ищете 'pd.get_dummies (df.Values)'? – Psidom

ответ

0

Вы можете сделать это во многих отношениях:

В pandas есть функция называется pd.get_dummies(), что позволяет преобразовывать каждый категорические данные по двоичным данным. Примените его к своему категориальному столбцу и затем объедините полученный файл с исходным. Here - ссылка на документацию.

Другим способом было бы использовать библиотеку sklearn и ее OneHotEncoder. Он делает то же самое, что и выше, но объекты не совпадают. Вы должны использовать экземпляр вашего класса OneHotEncoder, чтобы он соответствовал вашим категориальным данным.

Для вашего случая я бы использовал pd.get_dummies(), он прост в использовании.

Смежные вопросы