Python資料分析中Groupby用法之通過字典或Series進行分組的例項

NO IMAGE

在資料分析中有時候需要自己定義分組規則 這裡簡單介紹一下用一個字典實現分組


people=DataFrame(
np.random.randn(5,5),
columns=['a','b','c','d','e'],
index=['Joe','Steve','Wes','Jim','Travis']
)
mapping={'a':'red','b':'red','c':'blue','d':'blue','e':'red','f':'orange'}
by_column=people.groupby(mapping,axis=1)#列方向上進行分組

這裡不知道python底層是怎麼執行的,最好把執行的結果列印出來看一下


for i in by_column:
print (i)

遍歷的結果:


('blue',  c     d
Joe   0.218189 -0.228336
Steve  1.677264 0.630303
Wes   0.315320 -0.250787
Jim   3.343462 0.483021
Travis 0.854553 -0.760884)
('red',   a     b     e
Joe   0.218164 0.823654 -1.425720
Steve  1.191175 -0.327735 1.926470
Wes  -1.418855 0.497466 0.110105
Jim  -1.157157 0.817122 0.749023
Travis -0.440583 -0.907922 1.374294)

從結果可以看到,把a b e分給了red, c d分給了blue

a b e—>red

c d —>blue

接下來再來執行 people.groupby(mapping,axis=1).mean()


blue    red
Joe   0.241336 -0.182099
Steve  0.459773 -0.448336
Wes   0.205278 0.605721
Jim  -0.094838 1.254174
Travis 0.354140 0.142075

從結果看到在列方向group分組 執行聚合函式mean()後列索引就只有 blue和red了。

整個過程可以這麼理解 在列方向上進行分組 a b e為一組為red,c d 為一組為blue。最後以red blue作為新DataFraem的列索引

同樣Series也有同樣的功能,它可以被看作一個固定大小的對映。對於上面的那個例子,如果用series作為分組鍵,則pandas會檢查Series以確保其索引分組軸是對齊的:

ser=Series(mapping)
a red
b red
c blue
d blue
e red
f orange

by_ser_group=people.groupby(ser,axis=1).mean()

blue red
Joe 0.241336 -0.182099
Steve 0.459773 -0.448336
Wes 0.205278 0.605721
Jim -0.094838 1.254174
Travis 0.354140 0.142075

從結果可以看到,通過字典進行分組和通過Series進行分組結果是相同的。也就是說他們執行的原理是相同的,都是把索引(對series來說)或字典的key與Dataframe的索引進行匹配,

字典中value或series中values值相同的會被分到一個組中,最後根據每組進行在聚合。

groupby的用法很多,之後有時間我會慢慢更新部落格。如果有那些地方有錯歡迎大家指出,一塊學習,共同進步。

以上這篇Python資料分析中Groupby用法之通過字典或Series進行分組的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援指令碼之家。

您可能感興趣的文章:

python正則分組的應用Python正規表示式分組概念與用法詳解Python cookbook(資料結構與演算法)實現對不原生支援比較操作的物件排序演算法示例Python cookbook(資料結構與演算法)通過公共鍵對字典列表排序演算法示例Python cookbook(資料結構與演算法)找出序列中出現次數最多的元素演算法示例Python cookbook(資料結構與演算法)對切片命名清除索引的方法Python cookbook(資料結構與演算法)實現查詢兩個字典相同點的方法Python cookbook(資料結構與演算法)字典相關計算問題示例Python cookbook(資料結構與演算法)讓字典保持有序的方法Python cookbook(資料結構與演算法)在字典中將鍵對映到多個值上的方法Python cookbook(資料結構與演算法)儲存最後N個元素的方法Python cookbook(資料結構與演算法)根據欄位將記錄分組操作示例