我正在尝试使用熊猫透视多行,并且不确定如何在透视图中包括2列。
原始表
MP WeekNum Quantity TAT Case
AE 1 112 1 2
FR 45 56 22 3
FR 52 616 6 2
FR 52 95 3 3
IN 50 120 20 4
IN 51 233 16 4
IN 52 120 5 5
UK 1 780 1 2
UK 52 240 5 4
UK 1 252 4 3
US 50 320 25 1
US 53 72 1 2
我希望数据在下面。我正在尝试在数据透视行中使用列MP和Weeknum
MP Weeknum SumofQuantity SumofCase AverageofTAT
AE 1 112 2 1
FR 45 56 3 22
FR 52 711 5 5
IN 50 120 4 20
IN 51 233 4 16
IN 52 120 5 5
UK 1 1032 5 3
UK 52 240 4 5
US 50 320 1 25
US 53 72 2 1
请告知如何处理python pandas中的输出
答案 0 :(得分:0)
IIUC,尝试将groupby
与agg
:
df.groupby(['MP', 'WeekNum'], as_index=False)[['Quantity', 'TAT', 'Case']]\
.agg({'Quantity':'sum', 'Case':'sum', 'TAT':'mean'})
输出:
MP WeekNum Quantity Case TAT
0 AE 1 112 2 1.0
1 FR 45 56 3 22.0
2 FR 52 711 5 4.5
3 IN 50 120 4 20.0
4 IN 51 233 4 16.0
5 IN 52 120 5 5.0
6 UK 1 1032 5 2.5
7 UK 52 240 4 5.0
8 US 50 320 1 25.0
9 US 53 72 2 1.0
将pandas 1.0+与pd.NamedAgg一起使用
print(df.groupby(['MP', 'WeekNum'])[['Quantity', 'TAT', 'Case']]\
.agg(SumofQuantity=('Quantity','sum'),
SumofCase=('Case','sum'),
AverageofTAT=('TAT','mean')).reset_index())
输出:
MP WeekNum SumofQuantity SumofCase AverageofTAT
0 AE 1 112 2 1.0
1 FR 45 56 3 22.0
2 FR 52 711 5 4.5
3 IN 50 120 4 20.0
4 IN 51 233 4 16.0
5 IN 52 120 5 5.0
6 UK 1 1032 5 2.5
7 UK 52 240 4 5.0
8 US 50 320 1 25.0
9 US 53 72 2 1.0