我正在处理Titanic Kaggle问题。
我正在尝试针对我的数据集在同一查询中返回计数和总和。我知道我必须在查询中的某个地方使用.agg
函数,但是我无法弄清楚在哪里。
SexI
是与乘客性别相关的列,而AgeCat
是我为了更好地传达年龄数据而创建的列:
df[['AgeCat', 'SexI', 'PropSurvive']].groupby(['SexI','AgeCat'], as_index=False).agg(['mean', 'count']).sort_values(by=['SexI','AgeCat'], ascending=True)
因此,在此查询中,当我将agg(['mean', 'count'])
替换为.mean
时,返回的是我想要的那种,这就是我要分析的不同组的生存时间的平均值。当我用.count
替换时,它返回一个计数。
但是我无法让它们都返回同一查询。现在,它给了我一个KeyError:'SexI'
,但我真的不知道如何。
顺便说一句,这类似于您要select count(ROW) & mean(ROW)
进行的SQL查询吗?
答案 0 :(得分:1)
我认为需要reset_index
并在PropSurvive
之后添加列groupby
来列出:
(df.groupby(['SexI','AgeCat'])['PropSurvive']
.agg(['mean', 'count'])
.reset_index()
.sort_values(by=['SexI','AgeCat'], ascending=True))