我的数据如下:
In [16]: game_df.head(9)
Out[16]:
team_id game_id game_date w l wins losses winning%
0 1 1 11/16/18 1 0 20 10 0.666667
1 1 3 11/18/18 0 1 20 11 0.645161
2 1 6 11/21/18 0 1 20 12 0.625000
3 2 4 11/19/18 1 0 16 14 0.533333
4 2 8 11/23/18 1 0 17 14 0.548387
5 2 9 11/24/18 0 1 17 15 0.531250
6 3 2 11/17/18 0 1 24 8 0.750000
7 3 5 11/20/18 1 0 25 8 0.757576
8 3 7 11/22/18 1 0 26 8 0.764706
我需要的是取 Winning% 列并从每个 team_id (包括)的最新观察中减去每一行的观察,但只使用最大值。
所以我想得到这样的东西:
In [16]: game_df.head(9)
Out[16]:
team_id game_id game_date w l wins losses winning% w%_bac
0 1 1 11/16/18 1 0 20 10 0.666667 --
1 1 3 11/18/18 0 1 20 11 0.645161 -0.10483
2 1 6 11/21/18 0 1 20 12 0.625000 -0.13257
3 2 4 11/19/18 1 0 16 14 0.533333 -0.21667
4 2 8 11/23/18 1 0 17 14 0.548387 -0.21632
5 2 9 11/24/18 0 1 17 15 0.531250 -0.23346
6 3 2 11/17/18 0 1 24 8 0.750000 0.00000
7 3 5 11/20/18 1 0 25 8 0.757576 0.00000
8 3 7 11/22/18 1 0 26 8 0.764706 0.00000
所以在 11/24/18 的第 9 场比赛中,第 2 队输了,其胜率从 0.548387 下降到 0.531250。因此,相对于其他 2 支球队,它进一步落后——当时他们分别为 0.625000(第 1 队)和 0.764706(第 3 队)。所以 %back 团队 #2 将是 -0.233456。
最后,我需要计算每个 team_id 在那一刻的顺序,即在 2018 年 11 月 24 日,team_id 排名将是 3、1、2。
谢谢