按总和,排序和转置分组

时间:2019-07-09 09:25:02

标签: pandas pandas-groupby

我是熊猫和groupby功能的新手。 我有如下所示的数据框,它是客户的交易数据,如下所示,我想根据其总Dprtmnt来找出每个Cus_No的前两个Amount

Cus_No     Date     Dprtmnt          Amount
111     6-Jun-18      AAA              100
111     6-Jun-18      AAA              50
111     8-Jun-18      BBB              125
111     8-Aug-18      CCC              130
111     12-Dec-18     BBB              200
111     15-Feb-17     AAA              10
111     18-Jan-18     AAA              20
222     6-Jun-18      DDD              100
222     6-Jun-18      AAA              50
222     8-Jun-18      AAA              125
222     8-Aug-18      DDD              130
222     12-Dec-18     AAA              200
222     15-Feb-17     CCC              10
222     18-Jan-18     CCC              20

我的预期输出如下所示。

    Cus_No     Top1D Top1Sum    Top1_Frqnc  Top2D   Top2Sum  Top2_Frqnc
       111      BBB     325          2        AAA      180       4
       222      AAA     375          3        DDD      230       2

1 个答案:

答案 0 :(得分:1)

首先通过GroupBy.aggsumsize进行汇总,通过GroupBy.head进行排序并获得top2,最后通过DataFrame.unstack进行整形并通过{创建新的列名称{1}}和map

join