Python – Pandas 数据分组groupby

本文摘要:

Python - Pandas 数据分组groupby

; 分组后使用聚合函数统计

df为

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

返回结果,可见A变成索引列,里面的值进行了分类有bar、foo。因为调用sum函数,B列不是数字,自动忽略。

Python - Pandas 数据分组groupby
2. 多列groupby,查询所有数据列的平均数
df.groupby(['A', 'B']).mean()

A、B变成了二级索引

Python - Pandas 数据分组groupby
如果不希望A、B变成索引,可以修改as_index参数为False
df.groupby(['A', 'B'], as_index=False).mean()

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

列变成了多级索引

Python - Pandas 数据分组groupby
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})

Python - Pandas 数据分组groupby

获取某个分组的数据

按某一列分组的情况:

g = df.groupby('A')

Python - Pandas 数据分组groupby
for name, group in g:
    print(name)
    print(group)
    print()

Python - Pandas 数据分组groupby
通过get_group方法获取某个分组的数据
g.get_group('bar')

Python - Pandas 数据分组groupby
按多列分组的情况:
g = df.groupby(['A', 'B'])

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

g.get_group(('foo', 'one'))
  • 此文仅为个人笔记

Original: https://blog.csdn.net/DreamingBetter/article/details/123816046
Author: DreamingBetter
Title: Python – Pandas 数据分组groupby

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/753699/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球