熊猫枢轴使用多行

时间:2020-05-02 17:08:25

标签: python pandas

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

1 个答案:

答案 0 :(得分:0)

IIUC,尝试将groupbyagg

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