核心:

1.不论分组键是数组、列表、字典、Series、函数,只要其与待分组变量的轴长度一致都可以传入groupby进行分组。

2.默认axis=0按行分组,可指定axis=1对列分组

1.根据表本身的某一列或多列内容进行分组聚合

1.1按照一列进行聚合

import numpy as np
import pandas as pd
from pandas import DataFramea_data=pd.DataFrame({"a_char":list("abab"),"number":[1,1,2,2],"subject":["maths","science","chem","history"],"score":[100,90,80,90]})
a_data.index=["A","B","C","D"]
print(a_data)
"""a_char  number  subject  score
A      a       1    maths    100
B      b       1  science     90
C      a       2     chem     80
D      b       2  history     90
"""
groups=a_data.groupby("a_char")
for name,group in groups:print(name)print(group)print("=========")
"""
输出为:
aa_char  number subject  score
A      a       1   maths    100
C      a       2    chem     80
=========
ba_char  number  subject  score
B      b       1  science     90
D      b       2  history     90
=========
"""

1.2按照多列进行聚合(多列之间维度的笛卡尔积)

groups=a_data.groupby(["a_char","number"])
for name,group in groups:print(name)print(group)print("=========")
"""
输出为:
('a', 1)a_char  number subject  score
A      a       1   maths    100
=========
('a', 2)a_char  number subject  score
C      a       2    chem     80
=========
('b', 1)a_char  number  subject  score
B      b       1  science     90
=========
('b', 2)a_char  number  subject  score
D      b       2  history     90
=========
"""

2.按列进行聚合

a_dict={"number":"int","score":"int","a_char":"char","subject":"char"}
groups=a_data.groupby(a_dict,axis=1)
for name,group in groups:print(name)print(group)print("=====")
"""
chara_char  subject
A      a    maths
B      b  science
C      a     chem
D      b  history
=====
intnumber  score
A       1    100
B       1     90
C       2     80
D       2     90
=====

既然我们可以通过传入字典来对列进行分组,那么肯定也可以通过传入Series来对列进行分组了(Series中的index就相当字典中的key嘛):

a_series=Series(a_dict)
groups=a_data.groupby(a_series,axis=1)
for name,group in groups:print(name)print(group)print("=====")
"""
chara_char  subject
A      a    maths
B      b  science
C      a     chem
D      b  history
=====
intnumber  score
A       1    100
B       1     90
C       2     80
D       2

参考:https://www.cnblogs.com/zhangzhangwhu/p/7219651.html

以上,记录本人学习过程

groupby常用方法相关推荐

  1. 二十三、PHP框架Laravel学习笔记——集合的常用方法

    一.常用方法 all()方法,转换为属性形式输出,使用 dd 方法看类型: $collection = collect([1, 2, 2, 3, 4, 4, 4]); dd($collection-& ...

  2. collector list 多个分组_【S01E07】groupby方法、GroupBy对象、groupby方法的分组键

    Hadley Wickham(许多热门R语言包的作者)创造了一个用于表示分组运算的术语"split-apply-combine"(拆分-应用-合并),这个词很好的描述了整个过程.分 ...

  3. spark sql常用方法

    常用方法 show scala> emp.show() +----+------+-----+------+----------+---------+----+------+ |comm|dep ...

  4. JavaScript数组常用方法解析和深层次js数组扁平化

    前言 数组作为在开发中常用的集合,除了for循环遍历以外,还有很多内置对象的方法,包括map,以及数组筛选元素filter等. 注:文章结尾处附深层次数组扁平化方法操作. 作为引用数据类型的一种,在处 ...

  5. Spark SQL原理及常用方法详解(二)

    Spark SQL 一.Spark SQL基础知识 1.Spark SQL简介 (1)简单介绍 (2)Datasets & DataFrames (3)Spark SQL架构 (4)Spark ...

  6. 【大数据开发】SparkSQL——RDD、DataFrame、DataSet相互转换、DSL常用方法、SQL风格语法、Spark读写操作、获取Column对象的方式

    take,takeAsList是Action操作 limit⽅法获取指定DataFrame的前n⾏记录,得到⼀个新的DataFrame对象.和take与head不同的是,limit⽅法不是Action ...

  7. python中seaborn是什么_Python数据分析之seaborn常用方法

    Python数据分析之seaborn常用方法 %matplotlib inline import matplotlib as mpl from matplotlib import pyplot as ...

  8. Mybatis-Plus 条件构造器Wrapper常用方法

    Mybatis-Plus 条件构造器Wrapper常用方法 下面拼接的也就是sql语句里面where后面的: 1.eq 匹配与键值相等的数据 eq(键,值) 2.ne 匹配与键值不相等的数据 ne(键 ...

  9. dataframe常用操作_Pandas模块基础及常用方法

    Pandas是基于Numpy的数据处理与分析模块.包含两个最重要的基本类型:Series和DataFrame.其中Series类似numpy的一维数组,DataFrame类似二维数组,但可存储不同类型 ...

最新文章

  1. Spring集成MyBatis框架
  2. 减少重复工作,通过 Annotation Processor 自动完成源码的生成
  3. 02使用常规步骤编译NanoPiM1Plus的Android4.4.2
  4. ElasticSearch多shard场景相关度打分不准确问题
  5. Make my home's PC as proxy server to surf internet
  6. Helm 3 完整教程(十五):Helm 函数讲解(9)网络函数、文件路径函数、类型检查函数
  7. 透过用户思维谈程序员的进阶之路
  8. 海思芯片上LDC(镜头畸变校正)功能原理浅析
  9. Pytorch:卷积神经网络-空洞卷积
  10. 潇洒老师教你注塑模具使用顶针油需要注意的问题
  11. 广告配音免费制作软件让你轻松完成广告配音
  12. 水果店营业额下降原因,水果店如何提高营业额
  13. 计量经济学计算机第1章习题,计量经济学第1章习题.pdf
  14. C语言search函数的作用,C语言中库函数自带的查找函数bsearch
  15. wget网站镜像下载
  16. Java实现-五子棋
  17. surface pro可以编程c语言吗,surface pro 3就是surface3吗?surface pro 4就是surface4吗
  18. 【兑吧360】温暖冬日团圆年,贴心好礼迎新春
  19. linux 安装拼音QQ
  20. 记一次ajax sync为false 同步神坑bug

热门文章

  1. Swift 语言概览
  2. python机械臂仿真_使用VTK与Python实现机械臂三维模型可视化
  3. Esac代表什么意义?
  4. 怎么在小程序里开店铺?【小程序开店】
  5. 转载:Session与JWT的使用
  6. 新中大软件ngpower6.1单机版安装流程(WIN11)
  7. 抓包工具 HTTP Analyzer v7.5 的下载,安装,使用,破解说明
  8. AutoJs学习-MC我的世界自动钓鱼
  9. python3制作中文词云_Python_制作中文词云
  10. js获取对象的方法,根据id、根据name、根据标签名、根据类名