首页 > 解决方案 > Python滚动意味着从下一行开始

问题描述

我有赛马的结果,并希望在每场比赛开始时计算滚动获胜次数。这是我目前拥有的:

位置
一个 4
一个 1
一个 3

这就是我所追求的

位置 获胜
一个 4 0
一个 1 0
一个 3 1

所以当马 A 开始第二场比赛时它获得了 0 场胜利,但当它开始第三场比赛时获得了 1 场胜利

标签: pythonpandasrolling-computation

解决方案


使用移位运算符和 cumsum

df["Wins"] = (df["Position"].shift(1) == 1).cumsum()

输出:

  Horse  Position  Wins
0     A         4     0
1     A         1     0
2     A         3     1

推荐阅读