Я пытаюсь разделить данные между двумя новыми столбцами на основе соответствия строк в файле 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 и хочу понять это для нового кода, над которым я работаю.
Возможно, используя 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
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