Pandas分組函數(shù):groupby、pivot_table及crosstab

1. 起因

利用python的pandas庫進(jìn)行數(shù)據(jù)分組分析十分便捷粹湃,其中應(yīng)用最多的方法包括:groupby、pivot_table及crosstab泉坐,以下分別進(jìn)行介紹为鳄。

2. 詳解

首先構(gòu)造數(shù)據(jù)

import numpy as np
import pandas as pd
df = pd.DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.randn(5)}) 
df數(shù)據(jù)結(jié)構(gòu)

2.1 group函數(shù)

分組groupby Pandas中最為常用和有效的分組函數(shù)。

1)按列分組

注意以下使用groupby()函數(shù)生成的group1是一個(gè)中間分組變量腕让,為GroupBy類型孤钦。

group1 = df.groupby('key1')  
group2 = df.groupby(['key1','key2'])  

使用推導(dǎo)式[x for x in group1]可顯示分組內(nèi)容。

[x for x in group1]
[('a',       data1     data2 key1 key2
  0  1.830651  0.407903    a  one
  1 -0.973132 -0.056084    a  two
  4 -1.069184  0.043338    a  one), ('b',       data1     data2 key1 key2
  2 -0.477718 -1.488174    b  one
  3 -0.227680 -0.825671    b  two)]

在分組group1纯丸、group2上可以應(yīng)用size()偏形、sum()、count()等統(tǒng)計(jì)函數(shù)觉鼻,能分別統(tǒng)計(jì)分組數(shù)量俊扭、不同列的分組和、不同列的分組數(shù)量坠陈。

group1.size()  
key1
a    3
b    2
dtype: int64
group1.sum() 

對(duì)于分組的某一列或者多個(gè)列统扳,應(yīng)用agg(func)可以對(duì)分組后的數(shù)據(jù)應(yīng)用func函數(shù)。例如:用group1['data1'].agg('mean')對(duì)分組后的’data1’列求均值畅姊。當(dāng)然也可以推廣到同時(shí)作用于多個(gè)列和使用多個(gè)函數(shù)上。

group1['data1'].agg(['mean','sum'])  

2.2 透視表pivot_table

pivot_table可以產(chǎn)生類似于excel數(shù)據(jù)透視表的結(jié)果吹由,相當(dāng)?shù)闹庇^若未。其中參數(shù)index指定“行”鍵,columns指定“列”鍵倾鲫。

pd.pivot_table(df, index = 'key1', columns= 'key2')

2.3 交叉表crosstab

交叉表crosstab 可以按照指定的行和列統(tǒng)計(jì)分組頻數(shù)粗合,用起來非常方便;當(dāng)然同樣的功能也可采用groupby實(shí)現(xiàn)乌昔。

pd.crosstab(df.key1,df.key2, margins=True)

3. 總結(jié)

最近在學(xué)習(xí)《利用Python進(jìn)行數(shù)據(jù)分析》隙疚,會(huì)把遇到的問題和學(xué)習(xí)到的知識(shí)寫出來,希望不要棄坑磕道。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末供屉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子溺蕉,更是在濱河造成了極大的恐慌伶丐,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疯特,死亡現(xiàn)場(chǎng)離奇詭異哗魂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)漓雅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門录别,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朽色,“玉大人,你說我怎么就攤上這事组题『校” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵往踢,是天一觀的道長(zhǎng)腾誉。 經(jīng)常有香客問我,道長(zhǎng)峻呕,這世上最難降的妖魔是什么利职? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮瘦癌,結(jié)果婚禮上猪贪,老公的妹妹穿的比我還像新娘。我一直安慰自己讯私,他們只是感情好热押,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斤寇,像睡著了一般桶癣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娘锁,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天牙寞,我揣著相機(jī)與錄音,去河邊找鬼莫秆。 笑死间雀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镊屎。 我是一名探鬼主播惹挟,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼缝驳!你這毒婦竟也來了连锯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤用狱,失蹤者是張志新(化名)和其女友劉穎萎庭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體齿拂,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驳规,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了署海。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吗购。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡医男,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捻勉,到底是詐尸還是另有隱情镀梭,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布踱启,位于F島的核電站报账,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏埠偿。R本人自食惡果不足惜透罢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冠蒋。 院中可真熱鬧羽圃,春花似錦、人聲如沸抖剿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斩郎。三九已至脑融,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缩宜,已是汗流浹背肘迎。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脓恕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓窿侈,卻偏偏與公主長(zhǎng)得像炼幔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子史简,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容