python字典分组聚合
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于python字典分组聚合内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在python字典分组聚合相关知识领域提供全面立体的资料补充。同时还包含 package、package文件、padding 的知识内容,欢迎查阅!
python字典分组聚合相关知识
-
SQL分组函数和聚合函数的几点说明1 分组聚合的原因 SQL中分组函数和聚合函数之前的文章已经介绍过,单说这两个函数有可能比较好理解,分组函数就是group by,聚合函数就是COUNT、MAX、MIN、AVG、SUM。 拿上图中的数据进行解释,假设按照product_type这个字段进行分组,分组之后结果如下图。 SELECT product_type from product group by product_type 从图中可以看出被分为了三组,分别为厨房用具、衣服和办公用品,就相当于对product_type这个字段进行了去重,确实group by函数有去重的作用。 SELECT DISTINCT p
-
Python入门学习系列——Python字典Python 字典 在Python中,字典是一系列键值对。每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是任何值,包括数字、字符串、列表、字典等其他任何Python对象。 Python中字典的使用和Javascript中的json对象特别的类似。 字典的创建 在创建一个字典时,字典的键和值之间用冒号分割,每一组键-值对之间用逗号分割,整个键值对放在花括号的内部,形式如下: dic={'key1':'value1','key2':'value2'} 例如: >>> mydic={'name':'小明','age':18,'sex':'男'}
-
Python数据类型之字典导语:字典是另一种可变容器模型,且可存储任意类型对象,是除列表以外python之中最灵活的内置数据结构类型。查找速度非常快,一个元素和10W个元素没有什么区别。字典的无序特性和创建:列表是有序的对象结合,字典是无序的对象集合。字典当中的元素是通过键来存取的,每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下: d = {key1 : value1, key2 : value2 }键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。字典实例: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} &nb
-
深入探究Python中的字典容器字典(dictionary)我们都曾经使用过语言词典来查找不认识的单词的定义。语言词典针对给定的单词(比如 python)提供一组标准的信息。这种系统将定义和其他信息与实际的单词关联(映射)起来。使用单词作为键定位器来寻找感兴趣的信息。这种概念延伸到 Python 编程语言中,就成了特殊的容器类型,称为 字典(dictionary)。字典(dictionary) 数据类型在许多语言中都存在。它有时候称为关联 数组(因为数据与一个键值相关联),或者作为散列表。但是在 Python 中,字典(dictionary) 是一个很好的对象,因此即使是编程新手也很容易在自己的程序中使用它。按照正式的说法,Python 中的 字典(dictionary) 是一种异构的、易变的映射容器数据类型。创建字典本系列中前面的文章介绍了 Python 编程语言中的一些容器数据类型,包括 tuple、string 和 list(参见 参考资料)。这些容器的相似之处是它们都是基于序列的。这意味着要根据元素在序列中的位置访问这些集合中的元
python字典分组聚合相关课程
python字典分组聚合相关教程
- Python 数据类型详细篇:字典 前面的几个小节我们分别学习了字符串、列表、和元组等等几种 Python 中的基础数据类型,这节课我们来学习 Python 中另一个比较重要的数据类型–字典,字典和其他我们已经学习过的数据类型都有些不一样,具体不一样在哪里我们一起来看一下:
- 2. Django 内嵌 ORM 模型的聚合操作 在 Django 中聚合函数是通过 aggregate 方法实现的,aggregate 方法返回的结果是一个字典。其支持的聚合函数如下:# 源码位置 django/db/models/aggregates.py...__all__ = [ 'Aggregate', 'Avg', 'Count', 'Max', 'Min', 'StdDev', 'Sum', 'Variance',]...注意:第一个是基类,从 Avg 开始,是支持的聚合方法,每个聚合方法的处理对应着一个类,而这些类分别继承自 Aggregate 类。aggregate 方法的使用也非常简单,只需要在该方法内添加需要执行的聚合函数即可,同时我们还可以打印出聚合函数执行的 SQL 语句,具体操作如下:(django-manual) [root@server first_django_app]# python manage.py shellPython 3.8.1 (default, Dec 24 2019, 17:04:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from hello_app.models import Member>>> from django.db.models import Avg, Max, Min, Sum>>> from django.db import connection>>> Member.objects.all().aggregate(avg_age=Avg('age'),sum_age=Sum('age'), max_age=Max('age'), min_age=Min('age')){'avg_age': 29.392156862745097, 'sum_age': 2998.0, 'max_age': '40', 'min_age': '20'}>>> print(connection.queries[-1]['sql'])SELECT AVG(`member`.`age`) AS `avg_age`, SUM(`member`.`age`) AS `sum_age`, MAX(`member`.`age`) AS `max_age`, MIN(`member`.`age`) AS `min_age` FROM `member`注意:connection.queries 中保存的是最近执行的 SQL 语句,我们在执行完 Django 的 ORM 操作后,可以取出最后一次执行的 SQL 语句进行查看。此外,对于聚合的函数,如果我们不知道属性名,则会有默认值:字段__聚合函数名。>>> from django.db.models import Count>>> Member.objects.all().aggregate(Count('age', distinct=True)){'age__count': 21}>>> print(connection.queries[-1]['sql'])SELECT COUNT(DISTINCT `member`.`age`) AS `age__count` FROM `member`相比前面在 MySQL 中执行聚合函数,我们这里缺少一个 GROUP BY 功能。如果想要对数据库中的记录先分组然后再进行某些聚合操作或排序时,需要使用 annotate 方法来实现。与 aggregate 方法不同的是,annotate 方法返回结果的不仅仅是含有统计结果的一个字典,而是包含有新增统计字段的查询集 (QuerySet)。下面是实现分组聚合的实例操作:>>> from django.db.models import Count, Avg, Sum, Max, Min>>> Member.objects.values('occupation').annotate(count=Count('age')).order_by('-count')<QuerySet [{'occupation': 'security', 'count': 15}, {'occupation': 'ui', 'count': 15}, {'occupation': 'product', 'count': 14}, {'occupation': 'leader', 'count': 14}, {'occupation': 'ops', 'count': 14}, {'occupation': 'web', 'count': 12}, {'occupation': 'teacher', 'count': 8}, {'occupation': 'server', 'count': 8}, {'occupation': 'java', 'count': 1}, {'occupation': 'c/c++', 'count': 1}]>>>> print(connection.queries[-1]['sql'])SELECT `member`.`occupation`, COUNT(`member`.`age`) AS `count` FROM `member` GROUP BY `member`.`occupation` ORDER BY `count` DESC LIMIT 21注意:上面的操作有如下说明:annotate 方法前面的 values 中出现的字段正是需要 GROUP BY 的字段。values 方法中出现多个值,即对多个字段进行 GROUP BY;annotate 方法的结果是一个查询集 (QuerySet),这样我们可以继续在后面盗用 filter()、order_by() 等方法进行进一步过滤结果;order_by 方法是对前面的 QuerySet 按某些字段排序,类似于 SQL 中的 ORDER BY 操作。排序字段前面加上 “-” 表示按倒序顺序,类似于 DESC 操作
- 6. 字典 字典由键和对应值成对组成,字典中所有的键值对放在 {} 中间,每一对键值之间用逗号分开,例如:{‘a’:‘A’, ‘b’: ‘B’, ‘c’:‘C’}字典中包含3个键值对键 ‘a’ 的值是 ‘A’键 ‘b’ 的值是 ‘B’键 ‘c’ 的值是 ‘C’{1:100, 2: 200, 3:300}字典中包含3个键值对键 1 的值是 100键 2 的值是 200键 3 的值是 300字典通常用于描述对象的各种属性,例如一本书,有书名、作者名、出版社等各种属性,可以使用字典描述如下:>>> book = {'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社'}>>> book['title']'Python 入门基础'>>> book['author']'张三'>>> book['press']'机械工业出版社'在第 1 行,创建了一个字典用于描述一本书在第 2 行,使用字符串 ‘title’ 作为键(索引)访问字典中对应的值在第 4 行,使用字符串 ‘author’ 作为键(索引)访问字典中对应的值在第 6 行,使用字符串 ‘press’ 作为键(索引)访问字典中对应的值
- 3. 聚合操作 聚合操作是分组的目的,通过聚合操作对各组数据进行聚合,得到一定的分析效果,Pandas 中提供了大量的聚合操作函数,我们下面列举了部分,用以展示数据分组后进行聚合操作的效果。函数名说明 count 各分组中非 NaN 值的数量 sum 各分组中非 NaN 值的和 mean 各分组中非 NaN 值的平均值下面我们通过代码详细介绍聚合函数的使用:1. sum() 函数该函数用于求各组数值数据的和,非数值数据不进行该聚合操作。data.groupby(['技术方向','推出时间']).sum()# --- 输出结果 --- 年均销售数量 价格技术方向 推出时间 前端 1990年 378 79.9 1995年 678 59.5 后端 1972年 35 33.9 1983年 125 75.0 1995年 230 45.6# 结果解析:这里我们指定分组索引依据为列表,传入‘技术方向’,‘推出时间’,则分组是先以技术方向分为“前端”和“后端”,再以推出时间进行分组,带分组之后,进行 sum() 各组求和的聚合运算,得到各组的年均销售数量和价格的数据结果。在这里我们要补充一个下 groupby () 函数中的一个参数:as_index ,该参数默认为 True,是用来指定是否用分组索引作为聚合结果数据集的行索引,上面的代码中,默认 as_index=True ,因此行索引会有两层,分别为技术方向和推出时间,下面我们通过指定 as_index=False , 默认行索引会从 0 开始生成序列:# data 为上面解析的数据对象# 指定 as_index=Falsedata.groupby(['技术方向','推出时间'],as_index=False).sum()# --- 输出结果 --- 技术方向 推出时间 年均销售数量 价格0 前端 1990年 378 79.91 前端 1995年 678 59.52 后端 1972年 35 33.93 后端 1983年 125 75.04 后端 1995年 230 45.6# 结果解析:可以看到聚合后的数据集行索引为默认生成。2. count() 函数该函数用于计算分组后各组数据的数量。# data 为上面解析的数据对象# count() 函数data.groupby(['技术方向','推出时间'],as_index=False)['编程语言','年均销售数量','价格'].count()# --- 输出结果 --- 技术方向 推出时间 编程语言 年均销售数量 价格0 前端 1990年 2 2 21 前端 1995年 1 1 12 后端 1972年 1 1 13 后端 1983年 1 1 14 后端 1995年 1 1 1结果解析:这里我们通过 count () 进行聚合,并指定只聚合 “编程语言”,“年均销售数量”,“价格” 列的数据数量。3. mean() 函数该函数用于进行各分组数据的平均值的计算,该函数只对数值数据进行聚合。# data 为上面解析的数据对象# mean() 函数data.groupby(['技术方向'],as_index=False).mean()# --- 输出结果 --- 技术方向 年均销售数量 价格0 前端 352 46.4666671 后端 130 51.500000结果解析:通过 groupby 指定以技术方向进行分组,分为前端和后端,然后进行平均值的聚合操作。
- 1. 字典简介 字典由键和对应值成对组成,字典中所有的键值对放在 {} 中间,每一对键值之间用逗号分开,例如:{‘a’:‘A’, ‘b’: ‘B’, ‘c’:‘C’}字典中包含 3 个键值对键 ‘a’ 的值是 ‘A’键 ‘b’ 的值是 ‘B’键 ‘c’ 的值是 ‘C’{1:100, 2: 200, 3:300}字典中包含 3 个键值对键 1 的值是 100 键 2 的值是 200 键 3 的值是 300字典通常用于描述对象的各种属性,例如一本书,有书名、作者名、出版社等各种属性,可以使用字典描述如下:>>> book = {'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社'}>>> book['title']'Python 入门基础'>>> book['author']'张三'>>> book['press']'机械工业出版社'在第 1 行,创建了一个字典用于描述一本书;在第 2 行,使用字符串 ‘title’ 作为键(索引)访问字典中对应的值;在第 4 行,使用字符串 ‘author’ 作为键(索引)访问字典中对应的值;在第 6 行,使用字符串 ‘press’ 作为键(索引)访问字典中对应的值。
- 5. 遍历字典 Python 提供了 for 循环语句用于遍历列表、集合、字典等数据类型,关于 for 循环语句的详细用法,请参考词条 Python 的循环控制语句。
python字典分组聚合相关搜索
-
pack
package
package文件
padding
pages
page对象
panda
panel
panel控件
param
parameter
parcel
parent
parentnode
parents
parse
parse error
parseint
partition
pascal