我有一个 18,000 条记录的数据集,格式如下:
日期 | TM | 网站 | 奥普 | 玩家 | 距离 | 制作 | 已封锁 | 游戏ID | 季节 |
---|---|---|---|---|---|---|---|---|---|
2024-01-07 | 阿里 | H | 大海 | 马特·普拉特 | 51 | N | N | 海洋@ARI | 2023 |
2024-01-07 | 达尔 | A | 曾经 | 布兰登奥布里 | 50 | 是 | N | DAL@WAS | 2023 |
2024-01-07 | 谭 | A | 汽车 | 蔡斯·麦克劳克林 | 57 | 是 | N | 谭@汽车 | 2023 |
2024-01-07 | 汽车 | H | 谭 | 马修赖特 | 52 | N | N | 谭@汽车 | 2023 |
2024-01-07 | 气 | A | GNB | 开罗桑托斯 | 50 | 是 | N | CHI@GNB | 2023 |
有50个季节的数据。我项目这一部分的目标是按赛季计算每场比赛(唯一的 GameID)的尝试次数(每行是一次尝试)。我的想法是最好的途径是创建一个数据框,其中包含赛季、尝试、比赛和场均比赛的列。
我已经使用以下方法进行了尝试计算:
df.groupby(['Season']).size()
以及使用以下独特的游戏:
df.groupby('Season')['GameID'].nunique()
其中每一个都会按年返回一个表,所以我想我可以创建一个包含三个字段的字典来构建一个新的数据框。
data = {"Year":df.groupby(['Season']), "FG":df.groupby(['Season']).size(), "Games":df.groupby('Season')['GameID'].nunique()}
dfgrp = pd.DataFrame(data)
但是当我尝试查看 dfgrp 时,我收到一个很长的错误,它停止迭代但无法确定问题是什么。
我尝试过多次搜索,但似乎没有匹配的问题可以解决此问题。我是否以错误的方式处理这个问题?
您可以使用 pd.groupby.agg() 跳过几个步骤。
df.groupby('Season').agg(size=('Season', 'size'),
nunique=('GameID', 'nunique'))
size nunique
Season
2023 5 4