pandas - 如何在熊猫中获取组内“特定”列值的平均值
问题描述
我有一个简单的测试代码如下,我想知道每个部门的平均工资。特别是“销售”,但是当我在“部门”上使用 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
解决方案
df.groupby("Dept")["Salaries"].mean()['sales']
但你为什么要那个?它可能更占用 CPU
推荐阅读
- angular - 输入'| 从数组对象中使用 FIND 时,undefined' 不可分配给类型 ''
- r - HTML抓取在r中返回空字符
- java - 捕获不能应用于 Java 中的 T
- shell - 如何根据多种模式选择文件(逻辑与)
- ios - SpriteKit 帧周期中何时调用触摸事件?
- python - Python Pandas 中的 .loc 是否会对原始数据框进行就地更改?
- c - 不要通过不兼容类型的指针访问变量?
- c - 尝试从 CS50 制作 Cypher - 出现分段错误
- python - 我的 renpy 代码在工作标签上失败了,菜单坏了,所有的东西都死了
- filter - 过滤器上的粘性位置不起作用