Python - Pandas 数据分组groupby

本文摘要:

在这里插入图片描述

分组后使用聚合函数统计

df为
在这里插入图片描述

  1. 单个列groupby,查询所有数据列的统计
df.groupby('A').sum()

返回结果,可见A变成索引列,里面的值进行了分类有bar、foo。因为调用sum函数,B列不是数字,自动忽略。
在这里插入图片描述
2. 多列groupby,查询所有数据列的平均数

df.groupby(['A', 'B']).mean()

A、B变成了二级索引
在这里插入图片描述
如果不希望A、B变成索引,可以修改as_index参数为False

df.groupby(['A', 'B'], as_index=False).mean()

在这里插入图片描述

  1. 同时查看多种数据统计结果,这里用到了numpy里的函数
df.groupby('A').agg([np.sum, np.mean, np.std])

列变成了多级索引
在这里插入图片描述
4. 查看单列的数据统计结果

# 查看分组后 某列多种数据统计结果
df.groupby('A')['C'].agg([np.sum, np.mean, np.std])

# 查看分组后 某列一种数据统计结果
df.groupby('A')['C'].max()
  1. 不同列使用不同函数
df.groupby('A').agg({'C': np.sum, 'D': np.mean})

在这里插入图片描述

获取某个分组的数据

按某一列分组的情况:

g = df.groupby('A')

返回结果是个DataFrameGroupBy对象,可直接遍历在这里插入图片描述

for name, group in g:
	print(name)
	print(group)
	print()

在这里插入图片描述
通过get_group方法获取某个分组的数据

g.get_group('bar')

在这里插入图片描述
按多列分组的情况:

g = df.groupby(['A', 'B'])

这里的返回结果name就是一个包含两个元素的元组
所以可以这么获取分组的数据

g.get_group(('foo', 'one'))

*此文仅为个人笔记

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值