У меня есть таблица, которая имеет ту же структуру, что и упрощенный пример ниже:
Я хотел бы преобразовать столбцы 1 и 2 в столбцы заголовки со значениями в столбцах, которые находятся в значении C1 и значении C2. Остальную часть таблицы нужно оставить без изменений. Я ожидаю, что результат будет выглядеть следующим образом:
Я нашел способ сделать это, используя таблицу pd.pivot, как показано ниже, но у меня есть десять столбцов таблицы для преобразования, поэтому я хочу сделать это в одном go вместо того, как показано ниже, что означает, что я должен запускать одну и ту же строку десять раз, и каждый раз это приводит к новой отдельной таблице, которую я затем должен объединить на предыдущий вывод. Возможно ли это, я попытался использовать список в столбцах и значениях pd.pivot_table, но он не работает правильно, поскольку он пытается объединить столбцы, которые я передаю в список, вместо того, чтобы просто транспонировать их. Есть ли способ транспонировать часть таблицы так, как я описал в одном go при использовании сводной таблицы, или есть другой способ, который позволил бы мне это сделать?
TABLE1=pd.DataFrame({'Name':['John','Niomi','Jack','William','Bob','Stephanie'],
'Date Added':['05/05/2020','05/05/2020','03/04/2020','01/03/2020','10/04/2020','10/04/2020'],
'Column 1':['A','B','C','C','A','B'],
'C1 Value':['1','2','2','3','5','1'],
'Column 2':['D','D','G','F','G','F'],
'C2 Value':['5','7','9','5','2','1'],
'Column 3':['VALUE1','VALUE2','VALUE3','VALUE4','VALUE5','VALUE6'],
'Column 4':['VALUE7','VALUE8','VALUE9','VALUE10','VALUE11','VALUE12']})
table2=pd.pivot_table(TABLE1,index=('Name','Date Added'),columns='Column1',values='C1 Value',aggfunc='max',fill_value=0)
table3=pd.pivot_table(TABLE1,index=('Name','Date Added'),columns='Column2',values='C2 Value',aggfunc='max',fill_value=0)
table1.merge(table2,on=['Name','Date Added'])