Pandas分组:df.groupby()

关于分类汇总

先创建一个DataFrame对象df:


df= pd.DataFrame({'Date': ['2015-05-08','2015-05-07','2015-05-06','2015-05-05','2015-05-08','2015-05-07','2015-05-06','2015-05-05'],

'Sym': ['aapl','aapl','aapl','aapl','aaww','aaww','aaww','aaww'],

'Data2': [11,8,10,15,110,60,100,40],

'Data3': [5,8,6,1,50,100,60,120]})

或者从csv文件读取

df = pd.read_csv('C:/Users/Desktop/a.csv')

三种分组的情况(col是列名)

第一种:df.groupby(col),返回一个按列进行分组的groupby对象;

第二种:df.groupby([col1,col2]),返回一个按多列进行分组的groupby对象;(df.groupby([col1,col2])表示先对col1列进行分类汇总,之后对col2列进行分类汇总)

第三种:df.groupby(col1)[col2]或者df[col2].groupby(col1),两者含义相同,返回按列col1进行分组后,col2的值;

对数据表中的数值列进行统计,给出包括count = 计数,mean = 平均数,std = 方差,min = 最小值,25% = 四分位数,50% = 二分位数,75% = 四分之三分位数,max = 最大值的信息。不会对非数值列统计。

数据表中的列按值是否连续,可以分为连续值列、离散值列。对于离散值列,可以统计其不重复值的个数。对于连续值列,统计不重复值一般没有意义。统计结果是一个Series对象。

每组内,只有数值列能求和,非数值列不可以。

每组内,按列统计每组的成员数。每列的统计结果是一样的。

  • 所有组的均值
group = df.groupby(['gender'])
df1 = group.mean()
  • 单组的均值
group = df.groupby(['gender'])
df1 = group['math'].mean()

每组内,统计所有数值列的中位数,非数值列无中位数。

  • 统计所有数值列的中位数
group = df.groupby(['gender'])
df1 = group.median()
  • 统计单个数值列的中位数
group = df.groupby(['gender'])
df1 = group['math'].median() # 统计'math'列的中位数

每组内,统计所有数值列的最大值,非数值列无最大值。

  • 统计所有数值列的最大值
group = df.groupby(['gender'])
df1 = group.max()
  • 统计单个数值列的最大值
group = df.groupby(['gender'])
df1 = group['math'].max()

每组内,统计所有数值列的最小值,非数值列无最小值。

  • 统计所有数值列的最小值
group = df.groupby(['gender'])
df1 = group.min()
  • 统计单个数值列的最小值
group = df.groupby(['gender'])
df1 = group['math'].min()

每组内,统计所有数值列的标准差,非数值列无标准差。

  • 统计所有数值列的标准差
group = df.groupby(['gender'])
df1 = group.std()
  • 统计单个数值列的标准差
group = df.groupby(['gender'])
df1 = group['math'].std()

每组内,统计所有数值列的方差,非数值列无方差。

  • 统计所有数值列的方差
group = df.groupby(['gender'])
df1 = group.var()
  • 统计单个数值列的方差
group = df.groupby(['gender'])
df1 = group['math'].var()

每组内,统计所有数值列的二分位数,非数值列无二分位数。

  • 统计单个数值列的二分位数
group = df.groupby(['gender'])
df1 = group['math'].quantile()

每组内,统计所有数值列的累计和,非数值列无累计和。

[暂时没搞懂]

每组内,可以指定只求某一列的统计指标,包括平均数,方差等。function 可以是mean,或者std等。

group = df.groupby(['gender'])
df1 = group['math'].apply(np.mean) # 求组内均值

想同时查看每组内,某数值列的多个统计指标,可以用agg函数。它的参数是一个列表,列表中包含各个函数。

group = df.groupby(['gender'])
df1 = group['math'].agg([np.mean,np.std]) # 组内应用均值,方差两个函数
group = df.groupby(['gender'])
df1 = group.agg({'math':np.mean, 'chinese':np.std})

Original: https://blog.csdn.net/qq_38147044/article/details/126385192
Author: 一枚小可爱c
Title: Pandas分组:df.groupby()

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

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

(0)

大家都在看

  • Python基础够扎实了,不妨挑战一下二十分钟开发一款游戏

    一、Python及Pygame简介 作为一款开源的程序设计语言,Python有着众多优势。凭借着越来越丰富、功能越来越强大的扩展库,Python在各个领域越来越突出:数据分析(R语…

    Python 2023年9月21日
    055
  • 使用Matplotlib库可视化COCO数据集格式常用函数 (二)

    文章目录 前言 可视化标注文件中的检测框 可视化标注文件中的掩码 可视化预测文件的检测框和掩码 同时可视化原始图像,标注结果,预测结果 前言 在文章(一)中我们主要介绍了plt包绘…

    Python 2023年9月1日
    045
  • Windows,Linux,OS X系统中python安装Pygame

    Python如何安装pygame模块 一、Windows系统 1、检查是否安装了pip pip是一个&#x…

    Python 2023年9月25日
    046
  • 【赵渝强老师】MySQL高可用架构:MHA

    MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能。MHA 在监控…

    Python 2023年6月3日
    067
  • 如何预防SQL注入,XSS漏洞(spring,java)

    SQL注入简介 SQL注入是由于程序员对用户输入的参数没有做好校验,让不法分子钻了SQL的空子,比如:我们一个登录界面,要求用户输入用户名和密码:用户名: ‘ or 1…

    Python 2023年6月3日
    080
  • tensorflow的安装测试和版本、路径查询

    背景:已经安装好tensorflow,接下来主要是进行测试。 测试tensorflow 导入包 import tensorflow as tf sess = tf.compat.v…

    Python 2023年8月26日
    042
  • scrapy-2.5.1安装及简介

    安装scrapy命令: pip install scrapy==2.5.1 (pip install -i https://pypi.tuna.tsinghua.edu.cn/si…

    Python 2023年10月3日
    060
  • pandas之apply函数简介及用法详解

    1.基本信息 ​ Pandas 的 apply() 方法是用来调用一个函数(Python method),让此函数对数据对象进行批量处理。Pandas 的很多对象都可以使用 app…

    Python 2023年8月2日
    049
  • pytest-allure-日志模块级别控制

    测试日志:测试过程内部执行情况、错误异常信息 测试报告:测试内容、测试步骤、测试结果 测试报告是给用户还有管理者查看的,确认我们最终的测试结果 日志主要是用来测试脚本的和测试框架的…

    Python 2023年9月12日
    0115
  • python+pytest+selenium+allure实战

    selenium是一个针对web端项目的模拟鼠标和键盘操作的自动化测试工具,pytest是一个和unittest类似的自动化测试框架,但它比unittest更加方便,并且可以兼容u…

    Python 2023年9月9日
    071
  • matplotlib之pyplot模块——添加文本、注解(text、annotate)

    概述 text函数作用是根据 x, y坐标向图像添加文本。 annotate函数作用是根据 x, y坐标向图像添加文本注解。两者非常相似,但是又有一定差别。 text 函数概述 t…

    Python 2023年9月4日
    052
  • 摸鱼气象Python教案代码分享

    其中涵盖了大量气象领域Python初学者需要用到的编程案例,如: 数据读取、数据处理、数值计算、数据可视化、数据分析全流程、论文相关编程、debug心得等 值得相关专业的同学们每期…

    Python 2023年8月27日
    064
  • 查找100-999之间的水仙花数

    水仙花数,即一个三位数的个,十,百三位数字的立方和等于该三位数。 1 from math import pow 2 3 if __name__ == "__main__&…

    Python 2023年6月3日
    082
  • mac创建django项目的详细流程

    1、建立一个文件夹,然后新建位于文件夹的终端窗口输入: django-admin startproject xxx(项目名字) 文件夹内新增文件: 2、然后在manage.py的上…

    Python 2023年8月4日
    044
  • Pytest自动化测试-简易入门教程(03)

    今天分享内容的重点,和大家来讲一下我们的测试框架——Pytest 讲到这个框架的话呢,可能有伙伴就会问老师,我在学习自动化测试过程中,我们要去学一些什么东西? 第一个肯定要学会的是…

    Python 2023年9月12日
    047
  • 全局坐标系与车身坐标系转换

    在学习资料满天飞的大环境下,知识变得非常零散,体系化的知识并不多,这就导致很多人每天都努力学习到感动自己,最终却收效甚微,甚至放弃学习。我的使命就是过滤掉大量的无效信息,将知识体系…

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