Разделить данные из исходного столбца на два новых столбца на основе совпадения строк в Python?

1

Я пытаюсь разделить данные между двумя новыми столбцами на основе соответствия строк в файле csv. Входной файл выглядит следующим образом.

ID  Service Type
10  Parts warranty
20  Service warranty
30  Parts warranty
10  Service warranty
30  Service warranty
20  Parts warranty

Если данные столбца "Тип службы" соответствуют гарантии частей, он должен перейти к "Детали" столбцов, а если данные столбца "Тип службы" соответствуют гарантии службы, тогда он должен перейти в новый столбец "Сервис" и удалить исходный столбец "Тип службы".

ID  Parts           Service
10  Parts warranty  Service warranty
20  Parts warranty  Service warranty
30  Parts warranty  Service warranty

Любая помощь приветствуется, поскольку я новичок в Pandas и python и хочу понять это для нового кода, над которым я работаю.

Теги:
pandas
csv

2 ответа

0

Возможно, используя pivot с assign

df.assign(Type=df['Service Type'].str.split(' ').str[0]).pivot('ID','Type','Service Type')
Out[575]: 
Type           Parts           Service
ID                                    
10    Parts warranty  Service warranty
20    Parts warranty  Service warranty
30    Parts warranty  Service warranty
0

IIUC

df.pivot_table(values='Service Type', columns='Service Type' , index='ID',  aggfunc=lambda k: k.name[-1])

Service Type    Parts warranty  Service warranty
ID      
10              Parts warranty  Service warranty
20              Parts warranty  Service warranty
30              Parts warranty  Service warranty

Может всегда переименовываться при необходимости

.rename(columns={'Parts warranty': 'Parts', 
                 'Service warranty': 'Service'})


Service Type    Parts           Service
ID      
10              Parts warranty  Service warranty
20              Parts warranty  Service warranty
30              Parts warranty  Service warranty

Ещё вопросы

Сообщество Overcoder
Наверх
Меню