一.高级处理-分组与聚合
学习目标
- 目标
- 应用groupby和聚合函数实现数据的分组与聚合
- 应用
- 星巴克零售店数据的分组与聚合
分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况
想一想其实刚才的交叉表与透视表也有分组的功能,所以算是分组的一种形式,只不过他们主要是计算次数或者计算比例!!看其中的效果:

1 什么是分组与聚合

2 分组API
- DataFrame.groupby(key, as_index=False)
- key:分组的列数据,可以多个
- 案例:不同颜色的不同笔的价格数据
col =pd.DataFrame({'color': ['white','red','green','red','green'], 'object': ['pen','pencil','pencil','ashtray','pen'],'price1':[5.56,4.20,1.30,0.56,2.75],'price2':[4.75,4.12,1.60,0.75,3.15]})
color object price1 price2
0 white pen 5.56 4.75
1 red pencil 4.20 4.12
2 green pencil 1.30 1.60
3 red ashtray 0.56 0.75
4 green pen 2.75 3.15
- 进行分组,对颜色分组,price进行聚合
# 分组,求平均值
col.groupby(['color'])['price1'].mean()
col['price1'].groupby(col['color']).mean()
color
green 2.025
red 2.380
white 5.560
Name: price1, dtype: float64
# 分组,数据的结构不变
col.groupby(['color'], as_index=False)['price1'].mean()
color price1
0 green 2.025
1 red 2.380
2 white 5.560
二.案例实现
分组和聚合
In [124]:
col =pd.DataFrame({'color': ['white','red','green','red','green'], 'object': ['pen','pencil','pencil','ashtray','pen'],'price1':[5.56,4.20,1.30,0.56,2.75],'price2':[4.75,4.12,1.60,0.75,3.15]})
col
Out[124]:
| color | object | price1 | price2 | |
|---|---|---|---|---|
| 0 | white | pen | 5.56 | 4.75 |
| 1 | red | pencil | 4.20 | 4.12 |
| 2 | green | pencil | 1.30 | 1.60 |
| 3 | red | ashtray | 0.56 | 0.75 |
| 4 | green | pen | 2.75 | 3.15 |
- groupby ([“xx”]) [“oo”].mean()
- 把xx列的数据按照oo的平均值分组
In [125]:
col.groupby(["color"])["price1"].mean()
Out[125]:
color
green 2.025
red 2.380
white 5.560
Name: price1, dtype: float64
In [129]:
# 同上
col["price1"].groupby(col["color"]).mean()
Out[129]:
color
green 2.025
red 2.380
white 5.560
Name: price1, dtype: float64
In [130]:
# as_index = False :可以把index的标题位置上移
col.groupby(["color"], as_index=False)["price1"].mean()
Out[130]:
| color | price1 | |
|---|---|---|
| 0 | green | 2.025 |
| 1 | red | 2.380 |
| 2 | white | 5.560 |
本文介绍了Pandas库中数据分组与聚合的基本概念和应用,通过实例展示了如何使用`groupby`函数结合统计函数进行数据分组求平均值。案例中,对颜色分类的商品价格进行了分组聚合,展示了`as_index=False`参数的用法,以保留分组后的数据结构。
6622

被折叠的 条评论
为什么被折叠?



