📜  如何在 Pandas 中按组计算观察值?(1)

📅  最后修改于: 2023-12-03 15:24:18.516000             🧑  作者: Mango

如何在 Pandas 中按组计算观察值?

在数据分析过程中,经常需要对数据进行按组计算,例如对每个类别下的平均值、中位数等进行计算。Pandas 提供了类似于 SQL 中 groupby 的功能,可以轻松地对数据进行按组计算。

Groupby 语法

Pandas 中的 groupby 可以使用以下语法对数据进行按组计算:

df.groupby(by=grouping_columns)[columns_to_show].function()

其中,

  • grouping_columns 表示按哪些列进行分组;
  • columns_to_show 表示需要显示哪些列;
  • function 表示需要对哪些列进行需要进行计算的函数。
实例演示

假设有如下一份数据:

import pandas as pd

data = pd.DataFrame({
    "class": ["A", "B", "C", "A", "B", "C"],
    "score": [80, 85, 90, 75, 80, 85],
    "age": [20, 22, 21, 19, 23, 20]
})

print(data)

输出结果:

  class  score  age
0     A     80   20
1     B     85   22
2     C     90   21
3     A     75   19
4     B     80   23
5     C     85   20

如果需要按照班级分组计算平均分和最大年龄,可以使用以下代码:

result = data.groupby("class")["score", "age"].agg(["mean", "max"])

print(result)

输出结果:

          score     age    
           mean max mean max
class                      
A          77.5  80   19  20
B          82.5  85   23  23
C          87.5  90   20  21

可以看到,按照班级分组后,计算了每个班级的平均分和最大年龄。

更多关于 Pandas 的 groupby 函数的详细用法可以查看 官方文档