根据熊猫中各组的排名创建新列

时间:2019-06-25 14:03:10

标签: python pandas grouping

我有一个Pandas数据框,以降序显示玩家玩的顶级游戏:

Out[7]: 
    customer_id     game  total_plays
0            15  Numbers            2
1            15  Tripler            2
2            15      Max            2
3            15  Lottery            2
4             2     KENO            1
5             2      Max            1
6            44     Miss            4
7            46    Words           13
8            16  Lottery           15
9            17  Numbers           59
10            4      Max           10
11            5  Numbers           18
12            5      Max           14
13           23    Words            4
14           28  Instant           17
15           66      Max            2
16           87      Max            7
17           90     Spin           10
18          122      Max            9
19           45      Max          122
20           45  Numbers           23
21           45     KENO           15
22           19      Max           11
23           61  Instant           19
24           71  Numbers            1
25           53      Max            1
26          223      Max            2
27          105  Numbers            4
28           99  Numbers           35
29           18      Max            6

因此,为每个玩家列出的第一个游戏是他们玩得最多的游戏。

在我的数据框中,一个玩家只能玩1场比赛,最多只能玩4场比赛。

我想做的是创建一个具有5列的新数据框:

  1. 玩家ID
  2. 玩得最多的游戏
  3. 第二热门的游戏(如果有的话)
  4. 第三大游戏(如果有)
  5. 第4大热门游戏(如果有)

在第1至4个最常玩的游戏列中,必须命名游戏名称。如果玩家没有玩过第二/第三/第四的游戏,则结果可以保留为0。

因此,基于上述数据段的表格应如下所示:

Out[6]: 
    customer_id top_game 2nd_game 3rd_game 4th_game
0            15  Numbers  Tripler      Max  Lottery
1             2     KENO      Max        0        0
2            44     Miss        0        0        0
3            46    Words        0        0        0
4            16  Lottery        0        0        0
5            17  Numbers        0        0        0
6             4      Max        0        0        0
7             5  Numbers      Max        0        0
8            23    Words        0        0        0
9            28  Instant        0        0        0
10           66      Max        0        0        0
11           87      Max        0        0        0
12           90     Spin        0        0        0
13          122      Max        0        0        0
14           45      Max  Numbers     KENO        0
15           19      Max        0        0        0
16           61  Instant        0        0        0
17           71  Numbers        0        0        0
18           53      Max        0        0        0
19          223      Max        0        0        0
20          105  Numbers        0        0        0
21           99  Numbers        0        0        0
22           18      Max        0        0        0

我将如何做呢?

0 个答案:

没有答案