国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
統(tǒng)計(jì)師的Python日記#第5天:Pandas,露兩手#


本文是【統(tǒng)計(jì)師的Python日記】第5天的日記


回顧一下:


第1天學(xué)習(xí)了Python的基本頁面、操作,以及幾種主要的容器類型;

第2天學(xué)習(xí)了python的函數(shù)、循環(huán)和條件、類。

第3天了解了Numpy這個(gè)工具庫。

第4天初步了解了Pandas這個(gè)庫


原文復(fù)習(xí)(點(diǎn)擊查看):


【第1天:誰來給我講講Python?】


【第2天:再接著介紹一下Python唄】


【第3天:Numpy你好】


【第4天:歡迎光臨Pandas】


【第四天的補(bǔ)充


今天將帶來第5天的學(xué)習(xí)日記。


目錄如下:


前言


一、描述性統(tǒng)計(jì)

1. 加總

2. 描述性統(tǒng)計(jì)

3. 相關(guān)系數(shù)


二、缺失值處理

1. 丟棄缺失值

2. 填充缺失值


三、層次化索引

1. 用層次索引選取子集

2. 自定義變量名

3. 變量名與索引互換

4. 數(shù)據(jù)透視表


四、數(shù)據(jù)導(dǎo)入導(dǎo)出

1. 數(shù)據(jù)導(dǎo)入

2. 數(shù)據(jù)導(dǎo)出




統(tǒng)計(jì)師的Python日記【第5天:Pandas,露兩手】


前言


根據(jù)我的Python學(xué)習(xí)計(jì)劃:


Numpy → Pandas → 掌握一些數(shù)據(jù)清洗、規(guī)整、合并等功能 → 掌握類似與SQL的聚合等數(shù)據(jù)管理功能 → 能夠用Python進(jìn)行統(tǒng)計(jì)建模、假設(shè)檢驗(yàn)等分析技能 → 能用Python打印出100元錢 → 能用Python幫我洗衣服、做飯 → 能用Python給我生小猴子......


上一集開始學(xué)習(xí)了Pandas的數(shù)據(jù)結(jié)構(gòu)(Series和DataFrame),以及DataFrame一些基本操作:改變索引名、增加一列、刪除一列、排序。


今天我將繼續(xù)學(xué)習(xí)Pandas。


一、描述性統(tǒng)計(jì)


想拿一個(gè)簡(jiǎn)單的數(shù)據(jù)試試手,翻到了一份我國2012-2015年季度GDP的數(shù)據(jù),如下表(單位:萬億),



想整理到DataFrame中,如何處理?


用DataFrame:


gdp=DataFrame([[11.61,13.08, 13.67, 15.05],[12.81, 14.30, 15.07, 16.62], [13.87, 15.52, 16.35, 17.87], [14.80, 16.62,17.36, 18.94]], index=['2012', '2013', '2014', '2015'], columns=['s1', 's2','s3', 's4'])




得到了一張非常清爽的DataFrame數(shù)據(jù)表。


現(xiàn)在我要對(duì)這張表進(jìn)行簡(jiǎn)單的描述性統(tǒng)計(jì):


1. 加總


.sum()是將數(shù)據(jù)縱向加總(每一列加總)




這就很奇怪了,2012、2013、2014、2015四個(gè)年份的第一季度加總,這是什么鬼?其實(shí)我更想看橫向加總,就是每一年四個(gè)季度加總,得到一年的總和,原來,指定axis=1即可:




特別注意的是缺失值的情況!


如果有缺失值,比如四個(gè)數(shù)值2,3,1,NaN,那么加總的結(jié)果是2+3+1+NaN=6,也就是缺失值自動(dòng)排除掉了!這點(diǎn)特別注意,因?yàn)檫@可能會(huì)導(dǎo)致你的數(shù)據(jù)不必苛,比如某一年少一個(gè)季度的值,那么這一年其實(shí)就是三個(gè)季度的加總,跟其他年份四個(gè)季度怎么比?


因?yàn)閯側(cè)胄械臅r(shí)候在excel上犯過這類錯(cuò)誤,所以在此記錄一下。


解決辦法是指定 skipna=False,有缺失值將不可加總:


>>>df=DataFrame([[1.4, np.nan], [7.1, -4.5], [np.nan, np.nan], [0.75, -1.3]], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])

>>>df




這是一組有缺失值的數(shù)據(jù),現(xiàn)在來加總:




還可以累積加總:




關(guān)于缺失值,在后面還要專門學(xué)習(xí)(二、缺失值)。


2. 描述性統(tǒng)計(jì)


pandas除了加總,還可以利用 .describe() 得到每列的各種描述性分析:




當(dāng)然,除了用 .describe() 還可以自己用函數(shù)來得到,比如:



一些函數(shù)記錄在此(參考書本《利用Python進(jìn)行數(shù)據(jù)分析》):


方法

描述

count()

NA值的數(shù)量

describe()

各列的匯總統(tǒng)計(jì)

min()、max()

最小、最大值

argmin()argmax()

最小、最大值對(duì)應(yīng)的索引位置

idxmin()idxmax()

最小、最大值對(duì)應(yīng)的索引值

quantile()

樣本分位數(shù)

sum()

加總

mean()

均值

median()

中位數(shù)

mad()

根據(jù)平均值計(jì)算的平均絕對(duì)離差

var()

方差

std()

標(biāo)準(zhǔn)差

skew()

偏度

kurt()

峰度

cumsum()

累計(jì)和

cummax()cummin()

累計(jì)最大值和累計(jì)最小值

cumprod()

累計(jì)積

diff()

一階差分

pct_change()

百分?jǐn)?shù)變化



3. 相關(guān)系數(shù)


利用 .corr() 可以計(jì)算相關(guān)系數(shù),比如計(jì)算四個(gè)季度的相關(guān)系數(shù):




計(jì)算年份的相關(guān)系數(shù)呢?轉(zhuǎn)置一下就可以了:




然而可惜的是——沒有P值!


也可以單獨(dú)只計(jì)算兩列的系數(shù),比如計(jì)算S1與S3的相關(guān)系數(shù):





二、缺失值處理


Pandas和Numpy采用NaN來表示缺失數(shù)據(jù),




1. 丟棄缺失值


兩種方法可以丟棄缺失值,比如第四天的日記中使用的的城市人口數(shù)據(jù):




將帶有缺失的行丟棄掉:




這個(gè)邏輯是:“一行中只要有一個(gè)格缺失,這行就要丟棄。”


那如果想要一行中全部缺失才丟棄,應(yīng)該怎么辦?傳入 how=’all‘ 即可。




Chu那行被丟棄掉了。


另一種丟棄缺失值的方法是 data[data.notnull()] ,但是只能處理 數(shù)值型 數(shù)據(jù)。





2. 填充缺失值


.fillna() 方法對(duì)缺失值進(jìn)行填充,比如將缺失值全部變?yōu)?:




還可以指定填充方法:


method=

  • 'ffill' 向前填充,即將前面的內(nèi)容填充進(jìn)來;

  • 'bffill' 向后填充,即將后面的內(nèi)容填充進(jìn)來。


舉個(gè)例子:




后面baoding的pop被填充進(jìn)來了。



三、層次化索引


我們前面的索引就是Chu、Bao、Ha、Hu......,單一層次索引,如果索引為亞洲-中國-各個(gè)省-各個(gè)市,變量為人口,這就是典型的層次化索引。


>>> worldPop = pd.Series([13.74,13.41, 13.08, 1.27, 3.21, 3.09],index=[['China','China','China','Japan','US','US'],[2015,2010,2005,2015,2015,2010]])



這個(gè)例子中索引有兩層,國家和年份,來學(xué)習(xí)一些簡(jiǎn)單的操作。


1. 用層次索引選取子集:






選取多個(gè)子集呢?





2. 自定義變量名


自定義變量名的好處很多,可以更方便的對(duì)數(shù)據(jù)進(jìn)行選擇。使用 columns= 自定義變量名:




索引的名字也可以當(dāng)變量一樣命名,分別命名country和year兩個(gè)索引名:




.swaplevel() 可以調(diào)換兩個(gè)索引contry和year的位置:





3. 將索引與變量互換


使用 .reset_index([]) 可以將索引變成列變量。




使用 .set_index([]),也可以講變量變成索引:




4. 數(shù)據(jù)透視表


大家都用過excel的數(shù)據(jù)透視表,把行標(biāo)簽和列標(biāo)簽隨意的布局,pandas也可以這么實(shí)施,使用 .unstack() 即可:





四、數(shù)據(jù)的導(dǎo)入導(dǎo)出


1. 數(shù)據(jù)導(dǎo)入


表格型數(shù)據(jù)可以直接讀取為DataFrame,比如用 read_csv 直接讀取csv文件:


有文件testSet.csv:




存在D盤下面,現(xiàn)在讀取:





發(fā)現(xiàn)了一個(gè)問題——第一行被當(dāng)做變量名了!所以要指定 header=None




變量名變成了0、1,還是變扭啊,我們來指定個(gè)變量吧:




names= 可以指定變量名。


看到var1那列,如果想用這列做索引,咋辦?好辦!




index_col= 即可指定索引。


除了read_csv,還有幾種讀取方式:


函數(shù)

說明

read_csv

讀取帶分隔符的數(shù)據(jù),默認(rèn)分隔符為逗號(hào)

read_table

讀取帶分隔符的數(shù)據(jù),默認(rèn)分隔符為制表符

read_fwf

讀取固定寬格式數(shù)據(jù)(無分隔符)

read_clipboard

讀取剪貼板中的數(shù)據(jù)


read_table可以讀取txt的文件,說到這里,想到一個(gè)問題——如果txt文件的分隔符很奇怪怎么辦?


比如——




這個(gè)testSet.txt文件用“l(fā)oves”做分隔符!


隱隱覺得有人向我表白,但是有點(diǎn)惡心......


在實(shí)際中,更可能是某種亂碼,解決這種特殊分隔符,用 sep= 即可。




忽略紅色背景的部分。


還有一種情況是開頭帶有注釋的:




使用 skiprows= 就可以指定要跳過的行:




從我多年統(tǒng)計(jì)師從業(yè)經(jīng)驗(yàn)來看,學(xué)會(huì)了如何跳過行,也要學(xué)如何讀取某些行,使用 nrows=n 可以指定要讀取的前n行,以數(shù)據(jù)



為例:




2. 數(shù)據(jù)導(dǎo)出


導(dǎo)出csv文件使用 data.to_csv 命令:


data.to_csv(outFile, index=True, encoding='gb2312')


index=True 指定輸出索引,當(dāng)數(shù)據(jù)中有中文的時(shí)候用 encoding= 來解碼,否則會(huì)出現(xiàn)亂碼,一般 gb2312 即可,有些例外的情況用 gb18030 基本都能解決。



無私的把日記給大家分享,覺得我?guī)浺操澮幌掳?,越多人覺得我?guī)?,我就越想公開越多的日記給大家看。


因?yàn)槲規(guī)洶



1. 關(guān)于數(shù)據(jù)分析的提問求助直接在微信后臺(tái)留言。


2. 轉(zhuǎn)載、投稿、免費(fèi)發(fā)布招聘、合作,請(qǐng)加數(shù)說君個(gè)人微信AnselT,或Email:jiayounet@163.com。

數(shù)說工作室

數(shù)據(jù)分析師之家 | 金融 生物 零售 互聯(lián)網(wǎng)

微信ID:shushuojun


長按二維碼關(guān)注數(shù)說工作室

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Pandas 教程 | 菜鳥教程
pandas基礎(chǔ)教程(一)
Pandas學(xué)習(xí)筆記(DataFrame基本操作)
Python數(shù)據(jù)分析筆記——Numpy、Pandas庫
python數(shù)據(jù)分析筆記——數(shù)據(jù)加載與整理
用Python進(jìn)行數(shù)據(jù)分析之金融和經(jīng)濟(jì)數(shù)據(jù)應(yīng)用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服