【Pandas】分组与聚合


学习目标
应用 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

3 星巴克案例

一组关于全球星巴克店铺的统计数据,统计美国的星巴克数量和中国的哪个多。
数据来源:https://www.kaggle.com/starbucks/store-locations/data


3.1 数据获取

从文件中读取星巴克店铺数据

# 导入星巴克店的数据
starbucks = pd.read_csv("./data/directory.csv")
starbucks.head()

在这里插入图片描述


3.2 进行分组聚合

# 按照国家分组,求出每个国家的星巴克零售店数量
count = starbucks.groupby(['Country']).count()
count.head()

在这里插入图片描述

画图显示结果

count['Brand'].plot(kind='bar', figsize(20, 8))

在这里插入图片描述

# 加入省市一起进行分组
# 设置多个索引,set_index()
starbucks.groupby(['Country', 'State/Province']).count()

在这里插入图片描述
MultiIndexx`结构类似


相关链接


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值