python - Python滚动意味着从下一行开始
问题描述
我有赛马的结果,并希望在每场比赛开始时计算滚动获胜次数。这是我目前拥有的:
马 | 位置 |
---|---|
一个 | 4 |
一个 | 1 |
一个 | 3 |
这就是我所追求的
马 | 位置 | 获胜 |
---|---|---|
一个 | 4 | 0 |
一个 | 1 | 0 |
一个 | 3 | 1 |
所以当马 A 开始第二场比赛时它获得了 0 场胜利,但当它开始第三场比赛时获得了 1 场胜利
解决方案
使用移位运算符和 cumsum
df["Wins"] = (df["Position"].shift(1) == 1).cumsum()
输出:
Horse Position Wins
0 A 4 0
1 A 1 0
2 A 3 1
推荐阅读
- mysql - 保留最后 30 个值并删除其余值
- python - LSTM 算法对所有输入产生相同的结果
- javascript - JS将背景位置设置为数组中的随机数
- html - 全部使用:未设置;不会覆盖外部样式
- google-apps-script - 一段appscript代码运行缓慢?还是谷歌表格?
- php - 在 php 7.3 中转义 Preg_match
- facebook - 如何在不因页面速率限制而出现 #32 错误的情况下对应用进行审核
- reactjs - ag-Grid 中的网格单元格是否有下拉选择和输入组合字段?
- hl7-fhir - “入学日期”的适当 FHIR 资源和要素是什么
- xml - 使用 order by 时 3 位数小于 2 位数