如何在Pandas分组后获取指定列的特定分组均值
获取单个部门的平均薪资解决方案
嘿,我来帮你搞定这个问题!你已经用groupby算出了所有部门的平均薪资,现在要单独提取sales部门的结果,这里有几种简单易懂的方法:
方法一:直接对groupby结果索引
你用groupby得到的是一个以部门名为索引的Series,所以直接通过索引就能拿到sales部门的均值,两种写法都可以:# 直接索引 df.groupby("Dept")["Salaries"].mean()["sales"] # 用.loc更规范(推荐,避免隐式索引的问题) df.groupby("Dept")["Salaries"].mean().loc["sales"]执行后会直接返回
25.0这个结果。方法二:先筛选部门再计算均值
如果只需要sales部门的数据,其实可以先过滤出该部门的所有行,再直接计算平均,这样不用额外计算其他部门的均值,效率更高:df[df["Dept"] == "sales"]["Salaries"].mean()方法三:使用groupby的get_group方法
先通过get_group获取sales部门的分组数据,再计算均值:df.groupby("Dept")["Salaries"].get_group("sales").mean()
如果只是单次获取单个部门的均值,方法二更高效;如果后续还要用到其他部门的统计结果,那方法一或三会更合适,因为已经完成了groupby操作,后续可以直接复用。
内容的提问来源于stack exchange,提问作者Sandeep
相关产品推荐
相关产品推荐

