📅  最后修改于: 2023-12-03 15:24:18.516000             🧑  作者: Mango
在数据分析过程中,经常需要对数据进行按组计算,例如对每个类别下的平均值、中位数等进行计算。Pandas 提供了类似于 SQL 中 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 函数的详细用法可以查看 官方文档。