Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)根據(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ù)結(jié)構(gòu)中以允許進行隨機訪問,那么可以利用defaultdict構(gòu)建一個一鍵多值的字典會更好
#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)
運行結(jié)果:
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》)
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將序列分解為單獨變量的方法
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)找出序列中出現(xiàn)次數(shù)最多的元素算法示例
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從序列中移除重復項且保持元素間順序不變的方法
- python實現(xiàn)獲取序列中最小的幾個元素
- 利用Python找出序列中出現(xiàn)最多的元素示例代碼
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)對不原生支持比較操作的對象排序算法示例
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)查找兩個字典相同點的方法
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)字典相關(guān)計算問題示例
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實現(xiàn)優(yōu)先級隊列的方法示例
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)找到最大或最小的N個元素實現(xiàn)方法示例
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)保存最后N個元素的方法
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)篩選及提取序列中元素的方法
相關(guān)文章
詳解Python中4種超參自動優(yōu)化算法的實現(xiàn)
要想模型效果好,每個算法工程師都應該了解的流行超參數(shù)調(diào)優(yōu)技術(shù)。今天給大家總結(jié)超參自動優(yōu)化方法:網(wǎng)格搜索、隨機搜索、貝葉斯優(yōu)化?和?Hyperband,感興趣的可以了解一下2022-05-05
Python中re正則匹配數(shù)據(jù)的實現(xiàn)
在Python中,可以使用re模塊來使用正則表達式,本文主要介紹了Python中re正則匹配數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-04-04
Python requests.post()方法中data和json參數(shù)的使用方法
這篇文章主要介紹了Python requests.post()方法中data和json參數(shù)的使用方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-08-08
Pytorch中的torch.nn.Linear()方法用法解讀
這篇文章主要介紹了Pytorch中的torch.nn.Linear()方法用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
python?sns.countplot()?繪畫條形圖詳情
這篇文章主要介紹了python?sns.countplot()繪畫條形圖詳情,sns.countplot()用于畫類別特征的頻數(shù)條形圖,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-06-06

