尝试通过Python中现有数据帧的计算来创建基于分组的新数据帧

问题描述 投票:0回答:1

我有一个 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 时,我收到一个很长的错误,它停止迭代但无法确定问题是什么。

我尝试过多次搜索,但似乎没有匹配的问题可以解决此问题。我是否以错误的方式处理这个问题?

python pandas dataframe
1个回答
0
投票

您可以使用 pd.groupby.agg() 跳过几个步骤。

df.groupby('Season').agg(size=('Season', 'size'),
                         nunique=('GameID', 'nunique'))

        size    nunique
Season      
  2023     5          4
© www.soinside.com 2019 - 2024. All rights reserved.