python分組函式的使用 groupby

2021-10-02 12:51:21 字數 1344 閱讀 9145

專案使用場景:需要對乙個包含字典的列表進行資料格式的轉化,指定 dict 中某個具體 key 的value 作為 新的 key,新的 value 是乙個列表,包含了原始的那些資料

from itertools import groupby

from operator import itemgetter

import pprint

d1=d2=

d3=d4=

d5=d6=

# 定義乙個原始的資料列表

lst=

[d1,d2,d3,d4,d5,d6]

pprint.pprint(lst)

[,

, ,, ,

]

# 將 country 的值作為 key,即通過 conutry 對原始資料進行分組。

# groupby() 函式用法

"""groupby(iterable, key=none)

返回乙個連續的由可迭代物件的 key, value 組成的迭代器。如果沒有指定 key 的函式或者為 none,將返回自身。

"""res = groupby(lst)

pprint.pprint(res)

[r for r in res]
[(,

),(, ),

(, ),

(, ),

(, ),

(, )]

res = groupby(lst, key=

lambda x:x[

'country'])

# 從上面的列表推導式可以看出每一條資料都是有兩個資料的元祖

res =

pprint.pprint(res)

,

],'jp': ,

'usa': [,

,]}

# 使用 itemgetter() 和使用 lambda 函式是一樣的效果 anyway 我們可以自定義函式來進行 key 值的處理

res = groupby(lst, key=itemgetter(

'country'))

res =

pprint.pprint(res)

,

],'jp': ,

'usa': [,

,]}

分組聚合函式使用

1.mysql 的分組合併函式group concat group concat 會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函 數引數 就是欄位名 決定。分組必須有個標準,就是根據group by指定的列進行分組。例 select 分組字段,group concat 合併字段...

Python中的分組函式groupby及其壓縮應用

我們先來看乙個題目 給定一組字元,使其壓縮,壓縮後的長度必須始終小於或等於原陣列長度。示例 1 輸入 a a b b c c c 輸出 a 2 b 2 c 3 說明 aa 被 a2 替代。bb 被 b2 替代。ccc 被 c3 替代。或者輸出乙個描述元組 輸入 a a b b c c c 輸出 a ...

Oracle 分組排序函式使用,獲取分組第一條資料

oracle 常用 group by 來進行分組查詢,但這裡使用row number over 函式,語法 row number over partition by 欄位1 order by 欄位2 欄位1表示根據此欄位分組,欄位2表示排序,此函式計算的值就表示每組內部排序後的順序編號。with t...