python pandas中的agg函数用法

目录
  • pandas中的agg函数
  • pandas详解 聚合运算agg()
    • 1. 创建DataFrame对象
    • 2. 单列聚合
    • 3. 多列聚合
    • 4. 多种聚合运算
    • 5. 多种聚合运算并更改列名
    • 6. 不同的列运用不同的聚合函数
    • 7. 使用自定义的聚合函数
    • 8. 方便的descibe

pandas中的agg函数

python中的agg函数通常用于调用groupby()函数之后,对数据做一些聚合操作,包括sum,min,max以及其他一些聚合函数

如下所示:

>>> df = pd.read_excel(r"D:/myExcel/1.xlsx")
>>> df
        A   B   C
0     bob  12  45
1  millor  15  23
2     bob  34  88
3     bob  98  23

(1)获取按A分组后B列的最大值

>>> df.groupby(by='A').agg({'B':'max'})
         B
A         
bob     98
millor  15

(2)获取按A分组后B列的最大值和最小值

>>> df.groupby(by='A').agg({'B':['max','min']})
         B    
       max min
A             
bob     98  12
millor  15  15

(3)获取按A分组后B列的最大值和最小值以及C列的最大值

>>> df.groupby(by='A').agg({'B':['max','min'], 'C':'min'})
         B       C
       max min min
A                 
bob     98  12  23
millor  15  15  23

(4)默认是以函数名称命名的,可以修改

>>> df.groupby(by='A').agg(
b_min=pd.NamedAgg(column='B', aggfunc='min'),
b_max=pd.NamedAgg(column='B', aggfunc='max'))
        b_min  b_max
A                   
bob        12     98
millor     15     15

通常在调用完agg函数后需要reset_index,因为pandas会默认将groupby()的列也做为index传到结果中

>>> df.groupby('A').B.agg(['min', 'max'])
        min  max
A               
bob      12   98
millor   15   15
>>> df.groupby('A').B.agg(['min', 'max']).reset_index()
        A  min  max
0     bob   12   98
1  millor   15   15

这就是python小工具关于agg函数的介绍,挺有用 的一个函数。

pandas详解 聚合运算agg()

在数据分析中,分组聚合二者缺一不可。对数据聚合(求和、平均值等)通常是不可避免的。pd.agg()很方便进行聚合操作。

1. 创建DataFrame对象

import pandas as pd
df1 = pd.DataFrame({'sex':list('FFMFMMF'),'smoker':list('YNYYNYY'),'age':[21,30,17,37,40,18,26],'weight':[120,100,132,140,94,89,123]})

grouped = df1.groupby(['sex','smoker'])
# sex有 F M 二值,smoker有 Y N 二值,故分成四组。

2. 单列聚合

grouped['age'].agg('mean')
sex  smoker
F    N         30.0
     Y         28.0
M    N         40.0
     Y         17.5
Name: age, dtype: float64

3. 多列聚合

grouped.agg('mean')

4. 多种聚合运算

grouped['age'].agg(['min','max'])

5. 多种聚合运算并更改列名

grouped['age'].agg([('A','mean'),('B','max')])

6. 不同的列运用不同的聚合函数

grouped.agg({'age':['sum','mean'], 'weight':['min','max']})

7. 使用自定义的聚合函数

def Max_cut_Min(group):
    return group.max()-group.min()

grouped.agg(Max_cut_Min)

8. 方便的descibe

grouped.describe()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2022-05-12

python中分组函数groupby和分组运算函数agg的使用

目录 groupby: agg: 今天来介绍pandas中一个很有用的函数groupby,其实和hive中的groupby的效果是一样的,区别在于两种语言的写法问题.groupby在Python中的分组统计中很有用~ groupby: 首先创建数据: import pandas as pd import numpy as np df = pd.DataFrame({'A': ['a', 'b', 'a', 'c', 'a', 'c', 'b', 'c'], 'B': [2, 7, 1, 3, 3

pandas数据分组groupby()和统计函数agg()的使用

数据分组 使用 groupby() 方法进行分组 group.size()查看分组后每组的数量 group.groups 查看分组情况 group.get_group('名字') 根据分组后的名字选择分组数据 准备数据 # 一个Series其实就是一条数据,Series方法的第一个参数是data,第二个参数是index(索引),如果没有传值会使用默认值(0-N) # index参数是我们自定义的索引值,注意:参数值的个数一定要相同. # 在创建Series时数据并不一定要是列表,也可以将一个字典

Python pandas用法最全整理

1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as npimport pandas as pd 2.导入CSV或者xlsx文件: df = pd.DataFrame(pd.read_csv('name.csv',header=1))df = pd.DataFrame(pd.read_excel('name.xlsx')) 3.用pandas创建数据表: df = pd.DataFrame({"id":[1001,1002,1003

详谈pandas中agg函数和apply函数的区别

在利用python进行数据分析 这本书中其实没有明确表明这两个函数的却别,而是说apply更一般化. 其实在这本书的第九章'数组及运算和转换'点到了两者的一点点区别:agg是用来聚合运算的,所谓的聚合当然是合成的成分比较大些,这一节开头就点到了:聚合只不过是分组运算的其中一种而已.它是数据转换的一个特例,也就是说,它接受能够将一维数组简化为标量值的函数. 当然这两个函数都是作用在groupby对象上的,也就是分完组的对象上的,分完组之后针对某一组,如果值是一维数组,在利用完特定的函数之后,能做到

详谈Pandas中iloc和loc以及ix的区别

Pandas库中有iloc和loc以及ix可以用来索引数据,抽取数据.但是方法一多也容易造成混淆.下面将一一来结合代码说清其中的区别. 1. iloc和loc的区别: iloc主要使用数字来索引数据,而不能使用字符型的标签来索引数据.而loc则刚好相反,只能使用字符型标签来索引数据,不能使用数字来索引数据,不过有特殊情况,当数据框dataframe的行标签或者列标签为数字,loc就可以来其来索引. 好,先上代码,先上行标签和列标签都为数字的情况. import pandas as pd impo

python pandas中DataFrame类型数据操作函数的方法

python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj['列名'].astype(int)#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几

浅谈Pandas中map, applymap and apply的区别

1.apply() 当想让方程作用在一维的向量上时,可以使用apply来完成,如下所示 In [116]: frame = DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon']) In [117]: frame Out[117]: b d e Utah -0.029638 1.081563 1.280300 Ohio 0.647747 0.831136 -1.

详谈vue中router-link和传统a链接的区别

Vue-router是伴随着Vue框架出现的路由系统,它也是公认的一种优秀的路由解决方案.在使用Vue-router时候,我们常常会使用其自带的路径跳转组件Link,通过实现跳转,这和传统的何其相似!但它们到底有什么具体的区别呢? 官方中给出的解释是这样的: <router-link> 比起写死的 <a href="..." rel="external nofollow" rel="external nofollow" >

详谈Java中的Object、T(泛型)、?区别

因为最近重新看了泛型,又看了些反射,导致我对Object.T(以下代指泛型).?产生了疑惑. 我们先来试着理解一下Object类,学习Java的应该都知道Object是所有类的父类,注意:那么这就意味着它的范围非常广!首先记住这点,如果你的参数类型时Object,那么的参数类型将非常广! <Thinking in Java>中说很多原因促成了泛型的出现,最引人注目的一个原因就是为了创造容器类.这个要怎么来理解呢?我的理解是,可以抛开这个为了创造容器类这个,而是回到泛型的目的是限定某种类型上来.

详谈js中数组(array)和对象(object)的区别

•object 类型: ◦ 创建方式: /*new 操作符后面Object构造函数*/ var person = new Object(); person.name = "lpove"; person.age = 21; /*或者用对象字面量的方法*/ var person = { name: "lpove"; age : 21; } •array类型 ◦ 创建方式: `var colors = new Array("red","blu

JavaScript中的this,call,apply使用及区别详解

学习起因: 在之前的JavaScript学习中,this,call,apply总是让我感到迷惑,但是他们的运用又非常的广泛.遂专门花了一天,来弄懂JavaScript的this,call,apply. 中途参考的书籍也很多,以<JavaScript设计模式与开发实践>为主,<JavaScript高级程序设计>.<你不知道的JavaScript>为辅.这三本书对我理解this,call,apply都起了很大的帮助. this 首先,我们先讲述this. 在<Java

对pandas中apply函数的用法详解

最近在使用apply函数,总结一下用法. apply函数可以对DataFrame对象进行操作,既可以作用于一行或者一列的元素,也可以作用于单个元素. 例:列元素 行元素 列 行 以上这篇对pandas中apply函数的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 浅谈Pandas中map, applymap and apply的区别

Pandas的Apply函数具体使用

Pandas最好用的函数 Pandas是Python语言中非常好用的一种数据结构包,包含了许多有用的数据操作方法.而且很多算法相关的库函数的输入数据结构都要求是pandas数据,或者有该数据的接口. 仔细看pandas的API说明文档,就会发现有好多有用的函数,比如非常常用的文件的读写函数就包括如下函数: Format Type Data Description Reader Writer text CSV read_csv to_csv text JSON read_json to_json