Python cookbook(數(shù)據(jù)結構與算法)根據(jù)字段將記錄分組操作示例
本文實例講述了Python根據(jù)字段將記錄分組操作。分享給大家供大家參考,具體如下:
問題:想根據(jù)字典或者對象實例的某個特定的字典(比如日期)來分組迭代數(shù)據(jù)
解決方案:itertools.groupby()函數(shù)在對數(shù)據(jù)進行分組時特別有用(前提是先以目標字典進行排序)
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'},
]
from operator import itemgetter
from itertools import groupby
rows.sort(key=itemgetter('date')) #首先以date字段進行排序
for date, items in groupby(rows, key=itemgetter('date')): #再以date進行分組
print(date)
for i in items:
print(' ', i)
# 如果只是簡單地根據(jù)日期將數(shù)據(jù)分組到一起,放進一個大的數(shù)據(jù)結構中以允許進行隨機訪問,那么可以利用defaultdict構建一個一鍵多值的字典會更好
#Example of building a multidict
from collections import defaultdict
rows_by_date = defaultdict(list) #創(chuàng)建一個一鍵多值的字典,
for row in rows:
rows_by_date[row['date']].append(row)
for r in rows_by_date['07/01/2012']:
print(r)
運行結果:
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'}
{'address': '5412 N CLARK', 'date': '07/01/2012'}
{'address': '4801 N BROADWAY', 'date': '07/01/2012'}
(代碼摘自《Python Cookbook》)
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
- Python cookbook(數(shù)據(jù)結構與算法)將序列分解為單獨變量的方法
- Python cookbook(數(shù)據(jù)結構與算法)找出序列中出現(xiàn)次數(shù)最多的元素算法示例
- Python cookbook(數(shù)據(jù)結構與算法)從序列中移除重復項且保持元素間順序不變的方法
- python實現(xiàn)獲取序列中最小的幾個元素
- 利用Python找出序列中出現(xiàn)最多的元素示例代碼
- Python cookbook(數(shù)據(jù)結構與算法)實現(xiàn)對不原生支持比較操作的對象排序算法示例
- Python cookbook(數(shù)據(jù)結構與算法)實現(xiàn)查找兩個字典相同點的方法
- Python cookbook(數(shù)據(jù)結構與算法)字典相關計算問題示例
- Python cookbook(數(shù)據(jù)結構與算法)實現(xiàn)優(yōu)先級隊列的方法示例
- Python cookbook(數(shù)據(jù)結構與算法)找到最大或最小的N個元素實現(xiàn)方法示例
- Python cookbook(數(shù)據(jù)結構與算法)保存最后N個元素的方法
- Python cookbook(數(shù)據(jù)結構與算法)篩選及提取序列中元素的方法
相關文章
Pandas庫中isnull函數(shù)的實現(xiàn)
isnull()是Pandas庫中DataFrame和Series對象的一個函數(shù),用于檢測數(shù)據(jù)中的缺失值,本文主要介紹了Pandas庫中isnull函數(shù)的實現(xiàn),具有一定參考價值,感興趣的可以了解一下2024-07-07
python thrift 實現(xiàn) 單端口多服務的過程
這篇文章主要介紹了python thrift 實現(xiàn) 單端口多服務的過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
selenium學習教程之定位以及切換frame(iframe)
這篇文章主要給大家介紹了關于selenium學習教程之定位以及切換frame(iframe)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
利用Python實現(xiàn)Excel的文件間的數(shù)據(jù)匹配功能
這篇文章主要介紹了利用Python實現(xiàn)Excel的文件間的數(shù)據(jù)匹配,本文通過一個函數(shù)實現(xiàn)此功能,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
linux系統(tǒng)使用python監(jiān)測網(wǎng)絡接口獲取網(wǎng)絡的輸入輸出
這篇文章主要介紹了linux系統(tǒng)使用python監(jiān)測網(wǎng)絡接口獲取網(wǎng)絡的輸入輸出信息,大家參考使用吧2014-01-01

