gpt4 book ai didi

python - 如何使用 `pivot` 来跟踪输赢?

转载 作者:行者123 更新时间:2023-11-28 22:32:51 25 4
gpt4 key购买 nike

假设我有一些团队数据作为数据框 df

home_team   home_score  away_team   away_score
A 3 C 1
B 1 A 0
C 3 B 2

我想要一个数据框来指示一支球队击败另一支球队的次数。因此,例如 [1,3] 中的条目将是团队 1 击败团队 3 的次数,但 [3,1] 中的数字将是第 3 队击败第 1 队的次数。

这听起来像 df.pivot 应该能够做的事情,但我似乎无法让它做我想做的事。

我如何使用 pandas 完成此操作?

这是一个期望的输出

    A B C

A 0 0 1

B 1 0 0

C 0 1 0

最佳答案

这将创建一个只有赢家和输家的新数据框。它可以旋转以创建您正在寻找的内容。

我做了一些额外的数据来填充一些数据透视表的值

import pandas as pd

data = {'home_team':['A','B','C','A','B','C','A','B','C'],
'home_score':[3,1,3,0,1,2,0,4,0],
'away_team':['C','A','B','B','C','B','C','A','A'],
'away_score':[1,0,2,2,0,3,1,7,1]}
df = pd.DataFrame(d)

# create new dataframe
WL = pd.DataFrame()
WL['winner'] = pd.concat([df.home_team[df.home_score>df.away_score],
df.away_team[df.home_score<df.away_score]], axis=0)
WL['loser'] = pd.concat([df.home_team[df.home_score<df.away_score],
df.away_team[df.home_score>df.away_score]], axis=0)
WL['game'] = 1

# groupby to count the number of win/lose pairs
WL_gb = WL.groupby(['winner','loser']).count().reset_index()

# pivot the data
WL_piv = WL_gb.pivot(index='winner', columns='loser', values='game')

enter image description here

关于python - 如何使用 `pivot` 来跟踪输赢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539783/

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