python通过某个字段将记录分组
2017-10-30 11:16
323 查看
最近发现一本好书”python3-cookbook”,里面有很多场景的经典实现,是深入学习python的一本好书。
参考链接:http://python3-cookbook.readthedocs.io/zh_CN/latest/chapters/p01_data_structures_algorithms.html
通过某个字段将记录分组
结果为
如果你仅仅只是想根据 date 字段将数据分组到一个大的数据结构中去,并且允许随机访问, 那么你最好使用 defaultdict() 来构建一个多值字典
结果如下:
字典的一些常见函数可参考链接:http://www.runoob.com/python/python-dictionary.html
例如,遍历字典的key和value的值,可以使用items()函数。
参考链接:http://python3-cookbook.readthedocs.io/zh_CN/latest/chapters/p01_data_structures_algorithms.html
通过某个字段将记录分组
from operator import itemgetter from itertools import groupby rows = [ {'address': '5412 N CLARK', 'date': '07/01/2012'}, {'address': '5148 N CLARK', 'date': '07/04/2012'}, {'address': '5800 E 58TH', 'date': '07/02/2012'}, {'address': '2122 N CLARK', 'date': '07/03/2012'}, {'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'}, {'address': '1060 W ADDISON', 'date': '07/02/2012'}, {'address': '4801 N BROADWAY', 'date': '07/01/2012'}, {'address': '1039 W GRANVILLE', 'date': '07/04/2012'}, ] #operator模块提供的itemgetter函数用于获取对象的哪些维的数据 rows.sort(key=itemgetter('date')) for date,items in groupby(rows, key=itemgetter('date')): print(date) for i in items: print(' ', i)
结果为
07/01/2012 {'address': '5412 N CLARK', 'date': '07/01/2012'} {'address': '4801 N BROADWAY', 'date': '07/01/2012'} 07/02/2012 {'address': '5800 E 58TH', 'date': '07/02/2012'} {'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'} {'address': '1060 W ADDISON', 'date': '07/02/2012'} 07/03/2012 {'address': '2122 N CLARK', 'date': '07/03/2012'} 07/04/2012 {'address': '5148 N CLARK', 'date': '07/04/2012'} {'address': '1039 W GRANVILLE', 'date': '07/04/2012'}
如果你仅仅只是想根据 date 字段将数据分组到一个大的数据结构中去,并且允许随机访问, 那么你最好使用 defaultdict() 来构建一个多值字典
from collections import defaultdict rows = [ {'address': '5412 N CLARK', 'date': '07/01/2012'}, {'address': '5148 N CLARK', 'date': '07/04/2012'}, {'address': '5800 E 58TH', 'date': '07/02/2012'}, {'address': '2122 N CLARK', 'date': '07/03/2012'}, {'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'}, {'address': '1060 W ADDISON', 'date': '07/02/2012'}, {'address': '4801 N BROADWAY', 'date': '07/01/2012'}, {'address': '1039 W GRANVILLE', 'date': '07/04/2012'}, ] #defaultdict(list)函数表示默认的key对应的values是列表 rows_by_date = defaultdict(list) for row in rows: rows_by_date[row['date']].append(row) for r in rows_by_date['07/01/2012']: print(r)
结果如下:
{'address': '5412 N CLARK', 'date': '07/01/2012'} {'address': '4801 N BROADWAY', 'date': '07/01/2012'}
字典的一些常见函数可参考链接:http://www.runoob.com/python/python-dictionary.html
例如,遍历字典的key和value的值,可以使用items()函数。
相关文章推荐
- Python: 字典列表: 通过某个字段将记录分组
- Python cookbook(数据结构与算法)根据字段将记录分组操作示例
- oracle通过表中2个字段分组查询取数量最大的所有记录,有条件的去重
- [00015]通过某个字段将记录分组
- MySQL 先按某字段分组,再取每组中前N条记录
- [mysql] 先按某字段分组再取每组中前N条记录
- Mysql按字段分组取最大值记录
- MYSQL查询通过date类型的字段查询一段时间记录
- 按照某个字段分组,取出最大的一条记录
- Python数据分析中Groupby用法之通过字典或Series进行分组的实例
- Sql按照字段分组,选取其他字段最值所在的行记录
- MySQL使用GROUP_CONCAT()函数按ID分组将多条记录的某个字段以逗号或者指定分隔号隔开成一条记录
- Mysql按字段分组取最大值记录
- SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)
- 记录通过Map将list中包含相同字段的对象存放到一起,不同对象的分开
- sql 嵌套查询,并通过分组 和字段连接函数GROUP_CONCAT 查询出符合业务的结果集
- Mysql按字段分组取最大值记录
- [mysql] 先按某字段分组再取每组中前N条记录
- 获取分组后取某字段最大的一条记录(求每个类别中最大的值的列表)
- Mysql按字段分组取最大值记录