首页 > 解决方案 > 如何在熊猫中获取组内“特定”列值的平均值

问题描述

我有一个简单的测试代码如下,我想知道每个部门的平均工资。特别是“销售”,但是当我在“部门”上使用 groupby 并做一个平均值时,我得到了所有部门的平均值。

df = pd.DataFrame({"Dept":["sales", "engg", "mkt", "sales", "engg","mkt", "sales", "sales", "engg", "mkt"],"Salaries": [10,5,20,15,60,25,35,40,10,20]})
df.groupby("Dept")["Salaries"].mean()

Dept
engg     25.000000
mkt      21.666667
sales    25.000000
Name: Salaries, dtype: float64

但是,如果我想单独获得“销售额”的平均值,我会执行以下操作。我想知道是否有更好的方法来使用 groupby 做同样的事情并提取特定列值的平均值(在本例中为“销售额”)

df[df["Dept"]=="sales"]["Salaries"].mean()

25.0

标签: pandaspandas-groupby

解决方案


df.groupby("Dept")["Salaries"].mean()['sales']

但你为什么要那个?它可能更占用 CPU


推荐阅读