详解python中groupby函数通俗易懂

 更新时间:2020年05月14日 10:02:54   作者:The-Chosen-One  
这篇文章主要介绍了详解python中groupby函数通俗易懂,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、groupby 能做什么?

python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!

对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下:

df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式——函数名称)

举例如下:

print(df["评分"].groupby([df["地区"],df["类型"]]).mean())
#上面语句的功能是输出表格所有数据中不同地区不同类型的评分数据平均值

二、单类分组

A.groupby("性别")

首先,我们有一个变量A,数据类型是DataFrame

想要按照【性别】进行分组

得到的结果是一个Groupby对象,还没有进行任何的运算。

describe()

描述组内数据的基本统计量

A.groupby("性别").describe().unstack()

* 只有数字类型的列数据才会计算统计

* 示例里面数字类型的数据有两列 【班级】和【身高】

但是,我们并不需要统计班级的均值等信息,只需要【身高】,所以做一下小的改动:

A.groupby("性别")["身高"].describe().unstack()

unstack()

索引重排

上面的例子里面用到了一个小的技巧,让运算结果更便于对比查看,感兴趣的同学可以自行去除unstack,比较一下显示的效果

三、多类分组

A.groupby( ["班级","性别"])

单独用groupby,我们得到的还是一个 Groupby 对象。

mean()

组内均值计算

DataFrame的很多函数可以直接运用到Groupby对象上。

上图截自 pandas 官网 document,这里就不一一细说。

我们还可以一次运用多个函数计算

A.groupby( ["班级","性别"]).agg([np.sum, np.mean, np.std]) # 一次计算了三个

agg()

分组多个运算

四、时间分组

时间序列可以直接作为index,或者有一列是时间序列,差别不是很大。

这里仅仅演示,某一列为时间序列。

为A 新增一列【生日】,由于分隔符 “/” 的问题,我们查看列属性,【生日】的属性并不是日期类型

我们想做的是:

1、按照【生日】的【年份】进行分组,看看有多少人是同龄?

A["生日"] = pd.to_datetime(A["生日"],format ="%Y/%m/%d") # 转化为时间格式
A.groupby(A["生日"].apply(lambda x:x.year)).count() # 按照【生日】的【年份】分组

进一步,我们想选拔:

2、同一年作为一个小组,小组内生日靠前的那一位作为小队长:

A.sort_values("生日", inplace=True) # 按时间排序
A.groupby(A["生日"].apply(lambda x:x.year),as_index=False).first() 

as_index=False

保持原来的数据索引结果不变

first()

保留第一个数据

Tail(n=1)

保留最后n个数据

再进一步:

3、想要找到哪个月只有一个人过生日

A.groupby(A["生日"].apply(lambda x:x.month),as_index=False) # 到这里是按月分组
A.groupby(A["生日"].apply(lambda x:x.month),as_index=False).filter(lambda x: len(x)==1)

filter()

对分组进行过滤,保留满足()条件的分组

以上就是 groupby 最经常用到的功能了。

用 first(),tail()截取每组前后几个数据

用 apply()对每组进行(自定义)函数运算

用 filter()选取满足特定条件的分组

到此这篇关于详解python中groupby函数通俗易懂的文章就介绍到这了,更多相关python groupby函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python:print格式化输出到文件的实例

    python:print格式化输出到文件的实例

    今天小编就为大家分享一篇python:print格式化输出到文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python保存dict字典类型数据到Mysql并自动创建表与列

    Python保存dict字典类型数据到Mysql并自动创建表与列

    这篇文章主要介绍了Python保存dict字典类型数据到Mysql并自动创建表与列,字典是另一种可变容器模型,且可存储任意类型对象,想了解更多内容的小伙伴可以和小编一起进入下面文章学习更多内容,希望对你有所帮助
    2022-02-02
  • python爬虫租房信息在地图上显示的方法

    python爬虫租房信息在地图上显示的方法

    这篇文章主要介绍了python爬虫租房信息在地图上显示的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 教你用Python爬取英雄联盟皮肤原画

    教你用Python爬取英雄联盟皮肤原画

    今天给大家带来的是关于Python的相关知识,文章围绕着用Python爬取英雄联盟皮肤原画展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • python 虚拟环境的创建与使用方法

    python 虚拟环境的创建与使用方法

    本文先介绍虚拟环境的基础知识以及使用方法,然后再深入介绍虚拟环境背后的工作原理,需要的朋友可以参考下
    2021-06-06
  • pycharm安装中文插件的2种方法图文详解

    pycharm安装中文插件的2种方法图文详解

    PyCharm可以说是当今最流行的一款Python IDE了,下面这篇文章主要给大家介绍了关于pycharm安装中文插件的2种方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Python数据可视化实践之使用Matplotlib绘制图表

    Python数据可视化实践之使用Matplotlib绘制图表

    数据可视化是数据分析的重要环节,通过将数据转化为图形,可以更直观地展示数据特征和规律。Python中的Matplotlib库是一个强大的数据可视化工具,本文将带您了解Matplotlib的基本使用方法,以及如何绘制常见的图表
    2023-05-05
  • Python图像处理利Pillow库使用实战指南

    Python图像处理利Pillow库使用实战指南

    Pillow库是Python编程中用于图像处理的重要工具,作为Python Imaging Library(PIL)的一个分支,Pillow库提供了丰富的功能和易用的API,用于处理图像的各种操作
    2023-12-12
  • PyQt5类型判定+对象删除操作

    PyQt5类型判定+对象删除操作

    这篇文章主要介绍了PyQt5类型判定+对象删除操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • keras的get_value运行越来越慢的解决方案

    keras的get_value运行越来越慢的解决方案

    这篇文章主要介绍了keras的get_value运行越来越慢的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05

最新评论