Вот мои данные в Excel:
Item_Code Frequency Item_Name Product_Typ Req_1 Req_2
1122 4 Line 1 Colors Blue Yellow
1222 3 Line 2 Colors Black Blue
1345 3 Line 3 Animals Tiger Lion
1445 2 Line 4 Animals Tiger
1678 1 Line 5 Colors Blue Black
2456 1 Line 6 Animals Lion Tiger
Вот соответствующая кодировка:
agg_df = (df.fillna('N/A').set_index(['Item_Code', 'Frequency'])
.stack()
.reset_index('Frequency')
.groupby(0)
.agg(['sum'])
.reset_index())
Вот вывод этого кода:
0 Frequency
sum
0 Animals 6
1 Black 4
2 Blue 8
3 Colors 8
4 Line 1 4
5 Line 2 3
6 Line 3 3
7 Line 4 2
8 Line 5 1
9 Line 6 1
10 Lion 4
11 N/A 2
12 Tiger 6
13 Yellow 4
Код выполняет правильное суммирование данных, но включает столбец «Item_Name». Вывод должен быть в формате ниже. Разница здесь в том, что (1) «Item_Name» исключено из вычисления и (2) столбцы разделены «Product_Typ». Во-первых, подходит ли df.aggregate для этой операции, поскольку она работала выше? И второе, как я могу исключить "Item_Name", а также создать отдельные столбцы на основе "Product_Typ"?
0 Frequency 0 Frequency
sum sum
Animals Colors
0 Lion 4 Black 4
1 Tiger 6 Blue 8
2 Yellow 4
Спасибо!