Python數(shù)據(jù)分析中Groupby用法之通過(guò)字典或Series進(jìn)行分組的實(shí)例
在數(shù)據(jù)分析中有時(shí)候需要自己定義分組規(guī)則 這里簡(jiǎn)單介紹一下用一個(gè)字典實(shí)現(xiàn)分組
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)#列方向上進(jìn)行分組
這里不知道python底層是怎么運(yùn)行的,最好把運(yùn)行的結(jié)果打印出來(lái)看一下
for i in by_column: print (i)
遍歷的結(jié)果:
('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)
從結(jié)果可以看到,把a(bǔ) b e分給了red, c d分給了blue
a b e--->red
c d --->blue
接下來(lái)再來(lái)執(zhí)行 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
從結(jié)果看到在列方向group分組 執(zhí)行聚合函數(shù)mean()后列索引就只有 blue和red了。
整個(gè)過(guò)程可以這么理解 在列方向上進(jìn)行分組 a b e為一組為red,c d 為一組為blue。最后以red blue作為新DataFraem的列索引
同樣Series也有同樣的功能,它可以被看作一個(gè)固定大小的映射。對(duì)于上面的那個(gè)例子,如果用series作為分組鍵,則pandas會(huì)檢查Series以確保其索引分組軸是對(duì)齊的:
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
從結(jié)果可以看到,通過(guò)字典進(jìn)行分組和通過(guò)Series進(jìn)行分組結(jié)果是相同的。也就是說(shuō)他們執(zhí)行的原理是相同的,都是把索引(對(duì)series來(lái)說(shuō))或字典的key與Dataframe的索引進(jìn)行匹配,
字典中value或series中values值相同的會(huì)被分到一個(gè)組中,最后根據(jù)每組進(jìn)行在聚合。
groupby的用法很多,之后有時(shí)間我會(huì)慢慢更新博客。如果有那些地方有錯(cuò)歡迎大家指出,一塊學(xué)習(xí),共同進(jìn)步。
以上這篇Python數(shù)據(jù)分析中Groupby用法之通過(guò)字典或Series進(jìn)行分組的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python運(yùn)用于數(shù)據(jù)分析的簡(jiǎn)單教程
- Python數(shù)據(jù)分析matplotlib設(shè)置多個(gè)子圖的間距方法
- 分享一下Python數(shù)據(jù)分析常用的8款工具
- python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化詳解
- Python數(shù)據(jù)分析之雙色球基于線性回歸算法預(yù)測(cè)下期中獎(jiǎng)結(jié)果示例
- Python數(shù)據(jù)分析:手把手教你用Pandas生成可視化圖表的教程
- PowerBI和Python關(guān)于數(shù)據(jù)分析的對(duì)比
- Python數(shù)據(jù)分析庫(kù)pandas基本操作方法
- Python數(shù)據(jù)分析之獲取雙色球歷史信息的方法示例
- 使用Python對(duì)微信好友進(jìn)行數(shù)據(jù)分析
- 基于Python實(shí)現(xiàn)的微信好友數(shù)據(jù)分析
- Python實(shí)現(xiàn)的北京積分落戶數(shù)據(jù)分析示例
相關(guān)文章
python解決js文件utf-8編碼亂碼問(wèn)題(推薦)
這篇文章主要介紹了python解決js文件utf-8編碼亂碼問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05
使用Python給頭像加上圣誕帽或圣誕老人小圖標(biāo)附源碼
圣誕的到來(lái)給大家?guī)?lái)喜悅,今天圣誕老人給大家送一頂圣誕帽,今天小編通過(guò)代碼給大家分享使用Python給頭像加上圣誕帽或圣誕老人小圖標(biāo)附源碼,需要的朋友一起看看吧2019-12-12
python通過(guò)郵件服務(wù)器端口發(fā)送郵件的方法
這篇文章主要介紹了python通過(guò)郵件服務(wù)器端口發(fā)送郵件的方法,涉及Python發(fā)送郵件的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
Python中高效抓取數(shù)據(jù)的實(shí)戰(zhàn)指南
在數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,網(wǎng)絡(luò)爬蟲(chóng)已成為獲取信息的核心工具,本文將用通俗的語(yǔ)言,帶您掌握Python爬蟲(chóng)結(jié)合代理IP抓取數(shù)據(jù)的全流程,希望對(duì)大家有一定的幫助2025-04-04
用Python開(kāi)發(fā)app后端有優(yōu)勢(shì)嗎
在本篇文章里小編給大家整理的是關(guān)于app后端開(kāi)發(fā)學(xué)PHP還是Python的先關(guān)問(wèn)題內(nèi)容,需要的朋友們可以參考下。2020-06-06
基于python實(shí)現(xiàn)ROC曲線繪制廣場(chǎng)解析
這篇文章主要介紹了基于python實(shí)現(xiàn)ROC曲線繪制廣場(chǎng)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python自動(dòng)化運(yùn)維_文件內(nèi)容差異對(duì)比分析
下面小編就為大家分享一篇Python自動(dòng)化運(yùn)維_文件內(nèi)容差異對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Python 實(shí)現(xiàn)購(gòu)物商城,含有用戶入口和商家入口的示例
下面小編就為大家?guī)?lái)一篇Python 實(shí)現(xiàn)購(gòu)物商城,含有用戶入口和商家入口的示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09

