惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
The Cloudflare Blog
V
Visual Studio Blog
罗磊的独立博客
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
D
Docker
Last Week in AI
Last Week in AI
B
Blog RSS Feed
C
Check Point Blog
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
博客园 - 聂微东
MongoDB | Blog
MongoDB | Blog
雷峰网
雷峰网

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科 多款视频制作工具(免费)分享及素材推荐-互联网IT百科
pandas的groupby单列多列分组聚合运算-互联网IT百科
2022-01-28 · via 老董笔记

  本文是1个关于groupby的知识点,如果想全面了解分组聚合的场景,可以参考文章pandas之groupby使用详解

  本文介绍下pandas的groupby分组聚合的基础的操作,pandas官方文档上groupby的介绍如下:

	  DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,
squeeze=NoDefault.no_default,observed=False,dropna=True)

  一般而言by参数最常用,by参数可以传入1列或者多列,df按列分组后是DataFrameGroupBy对象,该对象可以直接调用各种聚合函数或者属性求每组数据的(最大max()、最小min()、均值mean()、求和sum()、数量大小size属性、。

  1、单列分组聚合

  从分组聚合结果来看,非数值类的列pandas默认会依据不同的聚合函数而灵活处理,按什么列分组默认该列会被作为结果的索引。

# -*- coding:UTF-8 -*-
import pandas as pd

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],
                   'Max Speed': [380, 370, 24, 26],
                   'age':[20,30,40,50],'size':['small','small','big','big']
                   })
print(df.groupby(['Animal']).mean())
print('-----------------------')
print(df.groupby(['Animal']).max())
        Max Speed   age
Animal                 
Falcon      375.0  25.0
Parrot       25.0  45.0
-----------------------
        Max Speed  age   size
Animal                       
Falcon        380   30  small
Parrot         26   50    big

  2、多列分组聚合

# -*- coding:UTF-8 -*-
import pandas as pd

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],
                   'Max Speed': [380, 370, 24, 26],
                   'age':[20,30,40,50],'size':['small','small','big','big']
                   })
print(df.groupby(['Animal','size']).mean())
print('-----------------------')
print(df.groupby(['Animal','size']).max())
             Max Speed   age
Animal size                  
Falcon small      375.0  25.0
Parrot big         25.0  45.0
-----------------------
              Max Speed  age
Animal size                 
Falcon small        380   30
Parrot big           26   50

  3、DataFrameGroupBy对象指定某几个列做聚合

# -*- coding:UTF-8 -*-
import pandas as pd

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],
                   'age':[20,30,40,50],
                   'size':[80,90,100,110],
                   'height':[200,210,220,230]
                   })
print(df.groupby('Animal')[['size','height']].min())
        size  height
Animal              
Falcon    80     200
Parrot   100     220

  4、如果不想让被分组的列作为结果的索引,可以把as_index参数设为False。

# -*- coding:UTF-8 -*-
import pandas as pd

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],
                   'Max Speed': [380, 370, 24, 26],
                   'age':[20,30,40,50],'size':['small','small','big','big']
                   })
print(df.groupby(['Animal'],as_index=False).min())
   Animal  Max Speed  age   size
0  Falcon        370   20  small
1  Parrot         24   40    big

  5、上述分组聚合只适合简单的情形,如果想实现复杂一些的分组计算,如:

  1)1个列使用多个函数分组聚合

  2)不同的列使用不同的函数分组聚合

  3)使用自定义函数分组聚合

  实现上述效果,可以参考分组聚合使用agg函数

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会