目标:

  • 学会利⽤pandas对数据进⾏分组
  • 知道如何提取分组后的数据
  • 可以按多列进⾏分组
  • 能够对分组后数据进⾏统计计算

测试数据集:
链接:https://pan.baidu.com/s/1QvY-Qvtl_8QtsMi8sxUD-w
提取码:di2z

一、数据的分组

在pandas当中我们可以利⽤groupby()方法对数据进行分组,返回的是一个分组后的对象, groupby()里面的参数是指定分组的列,分组也分为两种方式 :

①对所有数据进⾏分组
② 对指定列进⾏分组(只要指定列的数据)
下⾯我们来看⼀下这两种⽤法

1、对所有数据进⾏分组

import pandas as pddf = pd.read_excel('C:/Users/cherich/Desktop/forbes_2018.xlsx')groups = df.groupby('gender')print(groups)

2、对指定列进⾏分组(只要指定列的数据)

# 根据gender列只对age列进行分组group = df['age'].groupby(df['gender']) # 查看分组print(group.groups)# 根据分组后的名字选择分组print(group.get_group('F'))

3、对多列进⾏分组

group=df.groupby(['country','gender']) print(group)

二、提取分组后的数据

1、由于分组后的数据返回的是⼀个对象,我们⽤遍历的⽅式才能提取出数据(为了大家看的清楚,截取了几行数据,演示效果)

groups = df.groupby('gender')for group_name, group_df in groups:    print(group_name, '+', group_df)

group_name是分组的名称 ,group_df对应的每组的数据

2、使⽤get_group()⽅法获取某⼀组的数据

res = groups.get_group('F')print(res)

其中括号中的参数 F为分组名称

3、我们还可以使⽤另⼀种遍历的⽅式来获取分组后数据的数量

group = df.groupby('gender')for gender,value in group.size().items():    print(gender,value)
  • group.size()会返回分组后数据对应的数量
  • group.size().items()则是打包成zip对象,包括分组名称以及数量
    各个变量的含义:
    gender 遍历出来的分组名称
    value 每组对应数据的数量

三、对分组后的数据进⾏统计

pandas给我们提供了很多的统计函数,我们可以直接拿来使⽤

count() 统计列表中⾮空数据的个数 nunique() 统计⾮重复的数据的个数 sum() 统计列表中的所有数值的和 mean() 统计列表中的数据的平均值 median() 计算列表中数据的中位数 max() 计算列表中数据的最⼤值 min() 计算列表中数据的最⼩值
# 获取F组的数据f_group = groups.get_group('F')# 获取平均值f_mean = f_group['age'].mean()# 获取最大值f_max = f_group['age'].max()# 获取最小值f_min = f_group['age'].min()print(f_mean,f_max,f_min)

结果:60.470588235294116 94 21

上⾯的⽅式我们⼀次只能计算⼀个数据,那么pandas还给我们提供了⼀个⽅法,可以同时进 ⾏多个运算

  • agg() 我们只需将函数的名字以字符串的形势存储到列表中作为agg的参数即可
for group_name,group_df in groups:     f_se = group_df['age'].agg(['max','min','mean'])    print('{}组的最大年龄是{},最小年龄是{},平均年龄是{}'.format(group_name,f_se[0],f_se[1],f_se[2]))

各个变量的含义

  • f_se------------------统计结果
  • group_name------分组名称
  • f_se[0]--------------最⼤值
  • f_se[1]--------------最⼩值
  • f_se[2]--------------平均值

pandas groupby count_数据分析14-利用pandas进行数据分组相关推荐

  1. 计算机excel上机实训指导,上机实训指导手册——利用Excel进行数据分组和制作统计图表...

    上机实训指导手册--利用Excel进行数据分组和制作统计图表 (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 实训指导书课程名称 ...

  2. pandas apply lambda_数据分析必备!Pandas实用手册(PART III)

    这一系列的对应代码,大家可以在我共享的colab上把玩, ? https://colab.research.google.com/drive/1WhKCNkx6VnX1TS8uarTICIK2ViPz ...

  3. 阿里天池数据分析入门 利用Pandas分析数据

    pd.read_csv用法 ccl = pd.read_csv("1_usa_candidate/ccl.txt", sep = '|',names=['CAND_ID','CAN ...

  4. azw3 python数据分析 活用pandas库_Python数据分析 活用Pandas库 数据科学教程数据分析入门图书 Python编程入门数据处理...

    内容介绍 本书是Python数据分析入门书,每个概念都通过简单实例来阐述,便于读者理解与上手.具体内容包括:Python及Pandas基础知识,加载和查看数据集,Pandas的DataFrame对象和 ...

  5. python数据分析 活用pandas库_Python数据分析:活用Pandas库:Pandas for everyone

    序 iv 前言 v 致谢 xi 关于作者 xiv 第 一部分 简介 1 第 1章 Pandas DataFrame基础知识 2 1.1 简介 2 1.2 加载数据集 3 1.3 查看列.行.单元格 5 ...

  6. 利用python进行数据分析-14.5 2012美国大选数据分析(基础复习)

    美国大选数据分析 导入数据及相关库 数据清洗 填充缺失值 数据转换 面元化数据(分桶) 数据聚合与分组运算 时间处理 str转datetime(datetime为时间序列数据类型) 重新采样和频率转换 ...

  7. pandas玩转excel-> (2)如何利用pandas读取excel数据文件

    pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...

  8. pandas玩转excel-> (1)如何利用pandas创建excel数据文件

    pandas玩转excel-> (1)如何利用pandas创建excel数据文件 #在Anaconda3 的Spyder中 #定义pandas模块为pd import pandas as pd ...

  9. python 组内排序_python - pandas groupby在组内排序

    python - pandas groupby在组内排序 我想将数据框分组为两列,然后对组内的聚合结果进行排序. In [167]: df Out[167]: count job source 0 2 ...

最新文章

  1. EFQRCode:自动生成花式二维码
  2. Matplotlib画图常用方法总结(全)
  3. 动态定时任务数据库获取方式
  4. Docker快速搭建Tuleap项目管理平台
  5. swiftui动画之tab自定义切换动画_骨骼动画制作|万彩骨骼大师
  6. Windows10:将cmd命令行添加到右键中的方法
  7. [转载] C#面向对象设计模式纵横谈——11. Facede外观模式
  8. 吉米多维奇数学分析习题集学习指引
  9. 用小程序完成简单的详情列表功能
  10. 吉他入门:吉他音阶训练入门教程(二)
  11. 关于邮箱显示已经回复,但是已发送邮件里面没有
  12. 阿里云 vs Azure-存储 CDN
  13. 7.14英语学习:英国拍争议文物
  14. 公司邮箱后缀有哪些?外贸邮箱域名有哪些你知道吗?
  15. CentOS中 DNF 和 Yum 的区别
  16. Unity判断物体相对位置
  17. 2020大学生安全教育网课课后答案
  18. java escpos_java – 设置字符代码表以在ESC / POS打印机中打印非拉丁字符
  19. 实现简单的自定义音乐播放器
  20. 1.电磁波传播原理,慢衰落、快衰落、阴影效应、多径传播、多普勒效应、塔下黑。

热门文章

  1. python sys.argv
  2. Bzoj2732 [HNOI2012]射箭
  3. content的定义
  4. 理解Linq和lambda
  5. 研究cegui,写脚本
  6. UISC-User Interface States Control ;Murphy 用户界面状态控制(Beta)
  7. CentOS7虚拟机优化
  8. emacs(考场+平时)配置方案
  9. python中闭包详解
  10. VS中展开和折叠代码,还有其他快捷操作