假设我有一个数据集,其中包含了主客场球队和主客场球队,并显示了哪支球队赢得了比赛。像这样:
Home_team Away_Team Home_Win Away_Win gameID
TB CLB 1 0 1
NY ARZ 0 1 2
EDM CAN 1 0 3
NY TB 0 1 4
NY CLB 1 0 5
TB NY 1 0 6
你如何写一个顺序计数器来计算一支球队在前几场比赛中的总胜利数,而不管球队是主场还是客场。所以对于配子ID:1,每队总共有0场胜利。 自从TB赢了第一场比赛后,他们现在在第二场比赛之前总共赢了1场(配子ID:4)纽约之前一共赢了0场。你知道吗
所以数据应该是这样的:(AT=客场球队,HT=主场球队)
Home_team Away_Team Home_Win Away_Win gameID HT'sTotWins AT'sTotWins
TB CLB 1 0 1 0 0
NY ARZ 0 1 2 0 0
EDM CAN 1 0 3 0 0
NY TB 0 1 4 0 1
NY CLB 1 0 5 0 0
TB NY 1 0 6 2 1
我读过一些关于GroupBy.cumcount()
的书,但我不知道如何编写条件。
我希望我没有不清楚我想做什么,如果我是请告诉我。你知道吗
为了更具启发性,我把你的源数据扩展到了10个游戏 以及“缩短”列名,使打印输出不那么宽。你知道吗
因此,脚本的第一部分,生成源数据帧如下:
因为获胜的队伍可以同时在
HomeTeam
和AwayTeam
中,所以不存在 使用单个groupby
的简单方法。 您必须使用它两次,生成每个结果列。你知道吗要生成
HTWins
(主队的总胜利数),请使用:要生成
ATWins
(客场球队的总胜利数),请使用:当您
print(df)
时,您将得到:要帮助理解此脚本的工作方式,请运行每个指令 单独打印结果。你知道吗
也许有一种更“优雅”的方式来做这件事,但我只是把事情分成for循环,然后这样做。你知道吗
它能打印出你想要的。你知道吗
相关问题 更多 >
编程相关推荐