Python編程&數(shù)據(jù)科學(xué)入門 Lesson6

第六課 Pandas 進(jìn)階

* 本課主要內(nèi)容:數(shù)據(jù)的分組和聚合

01.分組和聚合的思想

  • 通過統(tǒng)計(jì)多篇文章詞頻的例子祠乃,來了解分組和聚合的思想方法。

02.鳶尾花案例

  • groupby 方法
  • agg方法
  • apply方法

03.嬰兒姓名案例

  • 每年最流行的男孩女孩名字所占的百分比變化趨勢(shì)如何?
  • 為何這一趨勢(shì)逐年降低的?

01.分組和聚合的思想

數(shù)據(jù)的分組&聚合 -- 什么是groupby 技術(shù)?

  • 在數(shù)據(jù)分析中,我們往往需要在將數(shù)據(jù)拆分饺窿,在每一個(gè)特定的組里進(jìn)行運(yùn)算鲫咽。比如根據(jù)教育水平和年齡段計(jì)算某個(gè)城市的工作人口的平均收入姨伤。
  • pandas中的groupby提供了一個(gè)高效的數(shù)據(jù)的分組運(yùn)算劫恒。
  • 我們通過一個(gè)或者多個(gè)分類變量將數(shù)據(jù)拆分贩幻,然后分別在拆分以后的數(shù)據(jù)上進(jìn)行需要的計(jì)算
  • 我們可以把上述過程理解為三部:
    *1.拆分?jǐn)?shù)據(jù)(split)
    *2.應(yīng)用某個(gè)函數(shù)(apply)
    *3.匯總計(jì)算結(jié)果(aggregate)


    Paste_Image.png

寫成代碼的話:

Paste_Image.png

02.案例一 :Iris鳶尾花數(shù)據(jù)集

a.導(dǎo)入pandas包
* import pandas as pd
b.導(dǎo)入鳶尾花數(shù)據(jù)
* Iris = pd.read_csv( 'iris.txt' )
*iris.head() # 前五行數(shù)據(jù)
Paste_Image.png
c. 統(tǒng)計(jì)每個(gè)品種的數(shù)據(jù)量
* iris.species.value_counts()
Paste_Image.png

2.1 分組運(yùn)算 groupby 方法 -- 使用內(nèi)置函數(shù)

鳶尾花數(shù)據(jù)中包括了3個(gè)不同的品種150個(gè)觀測(cè)對(duì)象,數(shù)據(jù)分析中我們往往對(duì)一個(gè)品種的特性更感興趣而不是每一個(gè)個(gè)體的數(shù)據(jù)描述兼贸。
假如一個(gè)植物園管理員提出這個(gè)問題:

按品種劃分段直,每個(gè)品種的花萼,花瓣的長度和寬度的最大值分別是多少溶诞?

我們應(yīng)該如何回答?

使用上述groupby的思想决侈,我們可以將數(shù)據(jù)劃分為3個(gè)小塊螺垢,每個(gè)小塊包含50個(gè)觀測(cè)數(shù)據(jù)。然后使用max函數(shù)得到各個(gè)測(cè)量值的最大值赖歌,然后進(jìn)行匯總枉圃。

Paste_Image.png

* size方法查看每個(gè)group的大小*

2.2 使用自定義函數(shù)進(jìn)行聚合運(yùn)算 -- agg 方法

  • 當(dāng)計(jì)算變得復(fù)雜時(shí),內(nèi)置函數(shù)可能無法處理
  • 我們需要自定義一個(gè)函數(shù)來進(jìn)行計(jì)算, 傳入一個(gè)數(shù)組做參數(shù)庐冯,返回一個(gè)標(biāo)量的結(jié)果孽亲。
  • groupby對(duì)象的agg/aggregate方法可以實(shí)現(xiàn)上述功能。
    計(jì)算每個(gè)品種所有屬性(花瓣展父、花萼的長度和寬度)數(shù)值的跨度范圍返劲,即最大值減去最小值
Paste_Image.png

我們還可以同時(shí)引用多個(gè)函數(shù),將函數(shù)名字放入一個(gè)列表即可栖茉,內(nèi)置函數(shù)名需要用引號(hào)

Paste_Image.png

針對(duì)不同的列篮绿,應(yīng)用不同的聚合函數(shù)

Paste_Image.png

2.3 更廣泛的分組運(yùn)算 -- apply方法

  • agg 方法將一個(gè)函數(shù)使用在一個(gè)數(shù)列上,然后返回一個(gè)標(biāo)量的值吕漂。
  • apply 是一個(gè)更一般化的方法:將一個(gè)數(shù)據(jù)分拆-應(yīng)用-匯總
    提取每個(gè)品種前n個(gè)觀測(cè)值作為一個(gè)樣本
Paste_Image.png

使用agg會(huì)報(bào)錯(cuò)亲配,試一下apply方法:

Paste_Image.png

階段小結(jié):

  • 上面的例題主要學(xué)習(xí)了如何將數(shù)據(jù)根據(jù)某些條件分拆為幾個(gè)子數(shù)據(jù),然后在每個(gè)子數(shù)據(jù)上進(jìn)行計(jì)算從而得到所要的結(jié)果惶凝。
  • 主要思想是分拆-應(yīng)用-匯總吼虎。
  • 對(duì)于一些簡單的計(jì)算,比如最大值最小值的計(jì)算苍鲜,我們可以直接使用groupby之后采用相應(yīng)的內(nèi)置方法思灰。
  • 對(duì)于一些更為復(fù)雜的計(jì)算,我們需要自己定義函數(shù)然后應(yīng)用到拆分后的子數(shù)據(jù)上坡贺。根據(jù)具體要求來決定使用agg方法還是apply方法官辈。

03.案例2:美國嬰兒名字?jǐn)?shù)據(jù)

Paste_Image.png

運(yùn)行以后的結(jié)果(前五行)

Paste_Image.png

利用info查看數(shù)據(jù)信息:

Paste_Image.png

根據(jù)多個(gè)屬性分組數(shù)據(jù)

Paste_Image.png

在不同的年份不同性別中,計(jì)算每個(gè)名字所占的百分比

Paste_Image.png

增加排序(rank)

Paste_Image.png

每年最流行的男孩女孩名字所占的百分比變化趨勢(shì)如何拳亿?

  • 思路:可以使用matlibplot畫出rank1的男孩女孩的名字每年所占總?cè)藬?shù)的百分比

使用Matplotlib工具繪圖

  • 下面的線圖(line plot)由matlibplot實(shí)現(xiàn)晴股,我們可以逐漸添加比如圖標(biāo)題,x軸和y軸的標(biāo)簽等等使圖形更加美觀
Paste_Image.png

繪制圖形

Paste_Image.png

女生的名字流行折線圖

Paste_Image.png

為什么歷史上最流行的男孩女孩名字所占的比重逐年降低?

Paste_Image.png

使用to_farme將series轉(zhuǎn)化為DataFrame格式

Paste_Image.png

使用reset_index()

Paste_Image.png

作圖

Paste_Image.png

運(yùn)行

Paste_Image.png

結(jié)論:可選擇的名字逐年增加肺魁,所以流行名字的占比逐年降低

  • 從數(shù)據(jù)中快速看到一個(gè)現(xiàn)象是我們學(xué)習(xí)數(shù)據(jù)分析的一個(gè)必要技能电湘,讓數(shù)據(jù)告訴我們發(fā)生的現(xiàn)象。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鹅经,一起剝皮案震驚了整個(gè)濱河市寂呛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘾晃,老刑警劉巖贷痪,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蹦误,居然都是意外死亡劫拢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門强胰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舱沧,“玉大人,你說我怎么就攤上這事偶洋∈炖簦” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵玄窝,是天一觀的道長牵寺。 經(jīng)常有香客問我,道長哆料,這世上最難降的妖魔是什么缸剪? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮东亦,結(jié)果婚禮上杏节,老公的妹妹穿的比我還像新娘。我一直安慰自己典阵,他們只是感情好奋渔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著壮啊,像睡著了一般嫉鲸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歹啼,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天玄渗,我揣著相機(jī)與錄音座菠,去河邊找鬼。 笑死藤树,一個(gè)胖子當(dāng)著我的面吹牛浴滴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岁钓,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼升略,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了屡限?” 一聲冷哼從身側(cè)響起品嚣,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钧大,沒想到半個(gè)月后翰撑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拓型,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年额嘿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劣挫。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖东帅,靈堂內(nèi)的尸體忽然破棺而出压固,到底是詐尸還是另有隱情,我是刑警寧澤靠闭,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布帐我,位于F島的核電站,受9級(jí)特大地震影響愧膀,放射性物質(zhì)發(fā)生泄漏拦键。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一檩淋、第九天 我趴在偏房一處隱蔽的房頂上張望芬为。 院中可真熱鬧,春花似錦蟀悦、人聲如沸媚朦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽询张。三九已至,卻和暖如春浙炼,著一層夾襖步出監(jiān)牢的瞬間份氧,已是汗流浹背唯袄。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜗帜,地道東北人恋拷。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像钮糖,于是被迫代替她去往敵國和親梅掠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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