我有一个数据集,里面有游戏中每个用户的击球细节。这是斯诺克的数据集,所以一个球员把球扔到地上,一直打到他没打中为止,以此类推。 我需要计算玩家在游戏中连续击球的最高次数
以下是数据集:
Game_id Player ID
5d6576aab80c990500e3ce5a 2ff211
5d6576aab80c990500e3ce5a 2ff250
5d6576aab80c990500e3ce5a 2ff211
5d6576aab80c990500e3ce5a 2ff211
. . . ...
我找到了一个解决方案,可以使用累计和和移位法来创建一个分组,但它能为你提供比赛中所有投篮的总和
# where f is the dataframe.
f['subgroup'] = (f['pSId'] != f['pSId'].shift(1)).cumsum()
f.groupby('subgroup',as_index=False).apply(lambda x: (x['pSId'].head(1), x.shape[0]))
对于每一个游戏ID,我需要得到一个球员在不给下一个球员机会的情况下最大的投篮次数如何获得连续的击球次数而不是标准的累积和?
结果应该是this:- 你知道吗
Game_id Player ID Maximum Continuous Shots
5d6576aab80c990500e3ce5a 2ff211 5
5d6576aab80c990500e3ce5a 2ff250 2
5d6576aa35c80305060c4a32 2f7a5b 5
5d6576aa35c80305060c4a32 2f0847 6
您可以这样做:
然后分组,得到最大值:
您也可以查看这篇文章: https://predictivehacks.com/count-the-consecutive-events-in-python/
相关问题 更多 >
编程相关推荐