偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

盤一盤 Python 的 itertools:數(shù)據(jù)分組

開發(fā)
分組處理數(shù)據(jù),你只會(huì)使用 pandas? 那你就錯(cuò)了。其實(shí)不借助第三方庫,我們也可以輕松實(shí)現(xiàn)數(shù)據(jù)分組。

分組處理數(shù)據(jù),你只會(huì)使用 pandas? 那你就錯(cuò)了。其實(shí)不借助第三方庫,我們也可以輕松實(shí)現(xiàn)數(shù)據(jù)分組。

今天內(nèi)容:

  • 使用字典做數(shù)據(jù)分組
  • 使用 itertools 的 groupby 實(shí)現(xiàn)數(shù)據(jù)分組
  • 如何封裝函數(shù),使其更具通用性

分組

字典是python中非常常用的一種數(shù)據(jù)結(jié)構(gòu)。我們可以用字典來實(shí)現(xiàn)數(shù)據(jù)分組。

比如,我們有這樣一個(gè)列表:

people_list = [
    {'姓名': '張三', '性別': '男', '年齡': '25'},
    {'姓名': '李四', '性別': '女', '年齡': '30'},
    {'姓名': '王五', '性別': '男', '年齡': '22'},
    {'姓名': '趙六', '性別': '女', '年齡': '28'},
    {'姓名': '周六', '性別': '女', '年齡': '26'},
    {'姓名': '陳七', '性別': '男', '年齡': '24'},
    {'姓名': '楊八', '性別': '女', '年齡': '27'},
]

我們想按照性別分組,統(tǒng)計(jì)平級(jí)年齡和人數(shù)。

使用字典的實(shí)現(xiàn)方式:

結(jié)果:

現(xiàn)在結(jié)果字典有兩項(xiàng)數(shù)據(jù)(男性和女性),分別對(duì)應(yīng)著兩個(gè)列表(里面就是該性別的數(shù)據(jù),是一個(gè)個(gè)字典)。

上面代碼,可以使用 defaultdict 改進(jìn):

行21: 當(dāng)訪問一個(gè)不存在的鍵時(shí),defaultdict 會(huì)自動(dòng)創(chuàng)建一個(gè)空列表,并返回它。

如果不想使用字典,而是想使用 itertools 的 groupby 實(shí)現(xiàn),可以這樣:

行15:分組前對(duì)數(shù)據(jù)做排序才行

封裝函數(shù)

現(xiàn)在已經(jīng)對(duì)數(shù)據(jù)進(jìn)行了分組,所謂的分組統(tǒng)計(jì)(平級(jí)年齡和人數(shù)),只不過是對(duì)每個(gè)性別的列表進(jìn)行遍歷,統(tǒng)計(jì)每個(gè)人的年齡,然后求和。

但統(tǒng)計(jì)處理多種多樣,為此我們可以封裝成通用的函數(shù)。

假設(shè)封裝的函數(shù)叫 group_by ,看看我們期待的使用方式:

  • 行9:參數(shù) by :指定分組的字段,也可以指定多個(gè)字段,比如 by=["性別", "年齡"] 。
  • 行9:參數(shù) aggregate :指定聚合函數(shù)。

確定了使用方式,那么我們可以開始封裝函數(shù):

  • 行20-23:讓參數(shù) by 支持單個(gè)字符串或多列分組
  • 行29:再次遍歷分組的結(jié)果,然后應(yīng)用聚合函數(shù)
責(zé)任編輯:趙寧寧 來源: 數(shù)據(jù)大宇宙
相關(guān)推薦

2022-03-25 13:45:37

黑客網(wǎng)絡(luò)攻擊數(shù)據(jù)泄露

2025-01-08 14:34:58

2025-06-30 08:48:00

2012-07-11 13:32:11

虛擬化

2024-01-08 08:30:30

接口線程模型

2020-06-05 15:48:26

網(wǎng)絡(luò)安全技術(shù)漏洞

2024-07-10 10:04:48

2015-03-02 11:23:51

2012-08-21 15:24:07

騰訊App

2021-10-29 09:55:20

人工神經(jīng)網(wǎng)絡(luò)

2010-04-29 11:23:08

Apple

2015-09-23 11:43:00

小米副卡虛擬運(yùn)營商

2012-07-25 11:29:41

2017-05-18 12:40:44

AlphaGoAI柯潔

2017-08-02 17:15:05

互聯(lián)網(wǎng)

2023-12-18 14:31:51

技術(shù)大模型人機(jī)交互

2021-07-11 07:10:11

機(jī)械盤固態(tài)盤硬盤

2023-03-09 12:00:45

AI科學(xué)家

2017-09-15 09:25:07

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)