Pandas枢轴使用多行

问题描述 投票:0回答:1

我正在尝试使用熊猫旋转多行,并且不确定如何在旋转中包括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中的输出

python pandas
1个回答
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

使用pd.NamedAgg使用pandas 1.0 +

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
© www.soinside.com 2019 - 2024. All rights reserved.