这是我在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
谢谢!