P2:Investigate a Dataset(探索數(shù)據(jù)集)

Choose one of Udacity's curated datasets and investigate it using NumPy and Pandas. Go through the entire data analysis process, starting by posing a question and finishing by sharing your findings.

P2的課已經(jīng)達(dá)到要求了泽西,雖然code重新提交了兩次才通過,完整的報(bào)告已經(jīng)放在了自己的github上鹉戚,點(diǎn)這里, 不過這一個(gè)學(xué)到了太多新的東西杭抠,還是需要好好消化一下骂维,完善一下筆記。

目錄(簡書竟然不支持目錄!)
ANACONDA 和 JUPYTER NOTEBOOKS
數(shù)據(jù)分析過程
用Numpy和Pandas分析一維數(shù)據(jù)
用Numpy和Pandas分析二維數(shù)據(jù)


ANACONDA AND JUPYTER NOTEBOOKS

這兩個(gè)對(duì)我來說是用于數(shù)據(jù)分析的新工具冰单,但是感覺非常的好的用,有幾個(gè)我認(rèn)為比較重要的指令:

conda upgrade --all
conda install jupyter notebook #安裝jupyter notebook
conda create -n py2 python=2    #用于創(chuàng)造一個(gè)新的python2的環(huán)境灸促,py2可替換成任意環(huán)境名字
jupyter notebook #啟動(dòng)notebook

一開始我創(chuàng)建新指令之后诫欠,在notebook中并沒有能夠找到我新環(huán)境的選項(xiàng)涵卵,如圖所示:

kernel

后來我才發(fā)現(xiàn),在創(chuàng)建了心的conda環(huán)境之后荒叼,其實(shí)要再安裝一遍jupyter notebook轿偎,不然不會(huì)在界面中顯示出來。

在Jupyter notebook中書寫格式主要是代碼和markdown被廓。其實(shí)之前接觸過一點(diǎn)markdown坏晦,所以不算陌生,基本寫法可以參考這里嫁乘,再有昆婿,對(duì)數(shù)據(jù)分析比較重要的是數(shù)學(xué)公式的書寫,可以參考這里亦渗。


數(shù)據(jù)分析過程

流程圖

讀取CSV

with open(filename, 'rb') as f:
    reader = unicodecsv.DictReader(f)
    result = list(reader)

(之后pandas提供了更簡單的函數(shù)挖诸,這個(gè)基本現(xiàn)在用不上了)

注意在數(shù)據(jù)處理過程中,用int(), float()對(duì)數(shù)據(jù)根據(jù)要求進(jìn)行相應(yīng)的轉(zhuǎn)換法精。

雖然說只要過一遍計(jì)算機(jī)導(dǎo)論多律,python就夠用了,其實(shí)還是有些新的內(nèi)容搂蜓,又學(xué)了幾個(gè)寫法:

 
#在dictionary中遍歷的方法狼荞,a,b in [dictionary].item(), a是key, b是值,比如:
 for key, data_points in grouped_data.items()

#values()--This method returns a list of all the values available in a given dictionary.
total_minutes = total_minutes_by_account.values()

#set()的使用帮碰,利用set()相味,可以建立一個(gè)沒有重復(fù)項(xiàng)的合集,比如:
pass_subway_project = set()

關(guān)于set()更多的用法可以參考這里

pyplot的使用

%pylab inline #可以讓圖標(biāo)在notebook中直接打開
import matplotlib.pyplot as plt
import numpy as np #縮寫

# Summarize the given data
def describe_data(data,bin = None):
    print 'Mean:', np.mean(data)
    print 'Standard deviation:', np.std(data)
    print 'Minimum:', np.min(data)
    print 'Maximum:', np.max(data)
    if bin == None:
        plt.hist(data)
    else:
        plt.hist(data, bins = bin)

這里的describe_data我引入了兩個(gè)parameters殉挽,databin =None丰涉,這是從cs101地方學(xué)來的,如果用的時(shí)候不考慮bin斯碌,我在用函數(shù)時(shí)候一死,只要填寫data這個(gè)參量就可以,如果要設(shè)定bin傻唾,填寫數(shù)字參量投慈。然后在function內(nèi)添加一個(gè)if判斷就可以實(shí)現(xiàn)了。


用Numpy和Pandas分析一維數(shù)據(jù)

Numpy作為python的數(shù)據(jù)庫冠骄,可以進(jìn)行多項(xiàng)運(yùn)算
具體的代碼筆記已經(jīng)放在github上伪煤。

在code review中,reviewer給我推薦了用 kernel density estimates,來理清性別和生存率的關(guān)系凛辣,他給我了這么一張圖抱既,我覺得挺高大上的,于是我就研究了一個(gè)下午:

kde(kernel density estimation)是核密度估計(jì)扁誓。核的作用是根據(jù)離散采樣蝙砌,估計(jì)連續(xù)密度分布阳堕。

參考了知乎的一篇文章跋理,寫的很生動(dòng)(python的seaborn.kdeplot有什么用?)(https://www.zhihu.com/question/43415333)雖然大部分我還是沒看懂

seaborn中有個(gè)seaborn.kdeplot就是用來算這個(gè)的择克,我的目標(biāo)是先把1D data的搞清楚:

import seaborn as sns
female_df_age = titanic_df[titanic_df['Sex'] == 'female']['Age'].dropna()
#注意這種df[df[] ==""]按照條件提取相對(duì)應(yīng)數(shù)組的手法
male_df_age = titanic_df[titanic_df['Sex'] == 'male']['Age'].dropna()
sns.kdeplot(female_df_age, shade=True, shade_lowest=False,label='Female')
sns.kdeplot(male_df_age, shade=True, shade_lowest=False,label='Male')

最后畫出來了這是樣的,我就可以根據(jù)隨意一個(gè)年齡去推算他的在船上出現(xiàn)的概率前普,然后與生存率相結(jié)合著來看(其實(shí)說實(shí)話我覺得他的那個(gè)圖好看是好看肚邢,可還是有點(diǎn)看不懂)

Paste_Image.png

用Numpy和Pandas分析二維數(shù)據(jù)

具體的代碼筆記已經(jīng)放在github上,這一塊有三個(gè)筆記拭卿,包括了最后的制圖骡湖。

Pandas里dataframes的幾個(gè)join方式

這個(gè)也是比較搞腦子的,參數(shù)不一樣合并的結(jié)果不一樣峻厚,重點(diǎn)注意how這個(gè)參量的變化响蕴,outer是全部合并,inner是合并除了有無效值的row, right保留右邊的數(shù)據(jù)(雖然合并之后左邊會(huì)是無效值)left就恰好相反惠桃,詳細(xì)的還是要看完整的合并指南浦夷,每次忘記怎么合并了,再看看辜王。

當(dāng)兩邊的df數(shù)據(jù)key值不一樣劈狐,要用left_on和right_on來對(duì)左右數(shù)據(jù)做一一的匹配才能保證正確合并。


左右合并key不一樣的時(shí)候

Matlab的使用

這一塊要再有空的時(shí)候繼續(xù)加強(qiáng)呐馆,特別是作圖的時(shí)候肥缔,熟悉幾個(gè)用法還是很重要的。
Pyplot tutorial
pandas.DataFrame.plot
其實(shí)我有時(shí)候會(huì)搞混的汹来,現(xiàn)在終于知道個(gè)大概:

*New in version 0.17.0:* Each plot kind has a corresponding method on the DataFrame.plot accessor:
df.plot(kind='line') is equivalent to df.plot.line()
.

這章節(jié)已經(jīng)完結(jié)(2017年1月7日)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末续膳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子收班,更是在濱河造成了極大的恐慌坟岔,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闺阱,死亡現(xiàn)場離奇詭異炮车,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)酣溃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門瘦穆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赊豌,你說我怎么就攤上這事扛或。” “怎么了碘饼?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵熙兔,是天一觀的道長悲伶。 經(jīng)常有香客問我,道長住涉,這世上最難降的妖魔是什么麸锉? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮舆声,結(jié)果婚禮上花沉,老公的妹妹穿的比我還像新娘。我一直安慰自己媳握,他們只是感情好碱屁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛾找,像睡著了一般娩脾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上打毛,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天柿赊,我揣著相機(jī)與錄音,去河邊找鬼隘冲。 笑死闹瞧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的展辞。 我是一名探鬼主播奥邮,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼罗珍!你這毒婦竟也來了洽腺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤覆旱,失蹤者是張志新(化名)和其女友劉穎蘸朋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扣唱,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藕坯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了噪沙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炼彪。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖正歼,靈堂內(nèi)的尸體忽然破棺而出辐马,到底是詐尸還是另有隱情,我是刑警寧澤局义,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布喜爷,位于F島的核電站冗疮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏檩帐。R本人自食惡果不足惜术幔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轿塔。 院中可真熱鬧特愿,春花似錦、人聲如沸勾缭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俩由。三九已至,卻和暖如春癌蚁,著一層夾襖步出監(jiān)牢的瞬間幻梯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工努释, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碘梢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓伐蒂,卻偏偏與公主長得像煞躬,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逸邦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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