groupby常用方法
核心:
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常用方法相关推荐
- 二十三、PHP框架Laravel学习笔记——集合的常用方法
一.常用方法 all()方法,转换为属性形式输出,使用 dd 方法看类型: $collection = collect([1, 2, 2, 3, 4, 4, 4]); dd($collection-& ...
- collector list 多个分组_【S01E07】groupby方法、GroupBy对象、groupby方法的分组键
Hadley Wickham(许多热门R语言包的作者)创造了一个用于表示分组运算的术语"split-apply-combine"(拆分-应用-合并),这个词很好的描述了整个过程.分 ...
- spark sql常用方法
常用方法 show scala> emp.show() +----+------+-----+------+----------+---------+----+------+ |comm|dep ...
- JavaScript数组常用方法解析和深层次js数组扁平化
前言 数组作为在开发中常用的集合,除了for循环遍历以外,还有很多内置对象的方法,包括map,以及数组筛选元素filter等. 注:文章结尾处附深层次数组扁平化方法操作. 作为引用数据类型的一种,在处 ...
- Spark SQL原理及常用方法详解(二)
Spark SQL 一.Spark SQL基础知识 1.Spark SQL简介 (1)简单介绍 (2)Datasets & DataFrames (3)Spark SQL架构 (4)Spark ...
- 【大数据开发】SparkSQL——RDD、DataFrame、DataSet相互转换、DSL常用方法、SQL风格语法、Spark读写操作、获取Column对象的方式
take,takeAsList是Action操作 limit⽅法获取指定DataFrame的前n⾏记录,得到⼀个新的DataFrame对象.和take与head不同的是,limit⽅法不是Action ...
- python中seaborn是什么_Python数据分析之seaborn常用方法
Python数据分析之seaborn常用方法 %matplotlib inline import matplotlib as mpl from matplotlib import pyplot as ...
- Mybatis-Plus 条件构造器Wrapper常用方法
Mybatis-Plus 条件构造器Wrapper常用方法 下面拼接的也就是sql语句里面where后面的: 1.eq 匹配与键值相等的数据 eq(键,值) 2.ne 匹配与键值不相等的数据 ne(键 ...
- dataframe常用操作_Pandas模块基础及常用方法
Pandas是基于Numpy的数据处理与分析模块.包含两个最重要的基本类型:Series和DataFrame.其中Series类似numpy的一维数组,DataFrame类似二维数组,但可存储不同类型 ...
最新文章
- Spring集成MyBatis框架
- 减少重复工作,通过 Annotation Processor 自动完成源码的生成
- 02使用常规步骤编译NanoPiM1Plus的Android4.4.2
- ElasticSearch多shard场景相关度打分不准确问题
- Make my home's PC as proxy server to surf internet
- Helm 3 完整教程(十五):Helm 函数讲解(9)网络函数、文件路径函数、类型检查函数
- 透过用户思维谈程序员的进阶之路
- 海思芯片上LDC(镜头畸变校正)功能原理浅析
- Pytorch:卷积神经网络-空洞卷积
- 潇洒老师教你注塑模具使用顶针油需要注意的问题
- 广告配音免费制作软件让你轻松完成广告配音
- 水果店营业额下降原因,水果店如何提高营业额
- 计量经济学计算机第1章习题,计量经济学第1章习题.pdf
- C语言search函数的作用,C语言中库函数自带的查找函数bsearch
- wget网站镜像下载
- Java实现-五子棋
- surface pro可以编程c语言吗,surface pro 3就是surface3吗?surface pro 4就是surface4吗
- 【兑吧360】温暖冬日团圆年,贴心好礼迎新春
- linux 安装拼音QQ
- 记一次ajax sync为false 同步神坑bug