自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

今天內(nèi)容:

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

分組

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

比如,我們有這樣一個列表:

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

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

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

結(jié)果:

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

上面代碼,可以使用 defaultdict 改進:

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

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

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

封裝函數(shù)

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

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

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

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

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

  • 行20-23:讓參數(shù) by 支持單個字符串或多列分組
  • 行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

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

小米副卡虛擬運營商

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ù)大模型人機交互

2021-07-11 07:10:11

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

2023-03-09 12:00:45

AI科學(xué)家

2017-09-15 09:25:07

2022-05-06 08:08:14

藍盤機械硬盤紫盤
點贊
收藏

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