gpt4 book ai didi

pandas - 根据 pandas df 计算各个团队的胜率

转载 作者:行者123 更新时间:2023-12-02 00:50:35 24 4
gpt4 key购买 nike

有一个如下所示的 pandas df

HomeTeam    AwayTeam    Winner
Warriors Cavaliers 1
Pistons Rockets 0
Warriors Rockets 1
Heat Warriors 0

获胜球队(主场或客场)由获胜者列中的二元结果表示。我想计算每支球队的整体胜率。我该怎么做呢?

预期的输出是这样的

Team     Win%
Warriors 85%
Heat 22%
....

最佳答案

我们可以使用np.choose来选择获胜者,并对获胜者和两个团队执行.value_counts(),从而计算比率:

np.choose(
df['Winner'], [df['HomeTeam'], df['AwayTeam']]
).value_counts().div(
df[['HomeTeam', 'AwayTeam']].stack().value_counts()
).fillna(0)

这里我们使用np.choose来选择球队,并进行值(value)统计,接下来我们.stack() HomeTeamAwayTeam 以获得参加比赛的球队的一系列值。然后我们可以使用 .values_counts() 来计算一支球队比赛的次数。如果一个团队从未出现在获胜方,则会导致 NaN。我们可以通过对这些值使用 0 来解决这个问题。

根据给定的样本数据,我们得到:

>>> np.choose(df['Winner'], [df['HomeTeam'], df['AwayTeam']]).value_counts().div(df[['HomeTeam', 'AwayTeam']].stack().value_counts()).fillna(0)
Cavaliers 1.0
Heat 1.0
Pistons 1.0
Rockets 0.5
Warriors 0.0
dtype: float64

在这里,骑士队热火队活塞队赢得了所有比赛,火箭队赢得了一半比赛比赛,而 Warrior 没有赢得任何比赛。

关于pandas - 根据 pandas df 计算各个团队的胜率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57936862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com