Python for Data Analysis 学习心得(二) - pandas介绍
?一、pandas介紹
本篇程序上篇內(nèi)容,在numpy下面繼續(xù)介紹pandas,本書(shū)的作者是pandas的作者之一。pandas是非常好用的數(shù)據(jù)預(yù)處理工具,pandas下面有兩個(gè)數(shù)據(jù)結(jié)構(gòu),分別為Series和DataFrame,DataFrame之前我在一些實(shí)戰(zhàn)案例中有用過(guò),下面先對(duì)這兩個(gè)數(shù)據(jù)結(jié)構(gòu)做介紹。
?
二、Series
Series最簡(jiǎn)單的一個(gè)功能就是對(duì)一組數(shù)字打上ID,用法為下
可以看到Series會(huì)自動(dòng)把數(shù)字打上0~3對(duì)應(yīng)的ID,也可以對(duì)ID自定義名稱
這樣就可以用key-value的形式將序列里的值調(diào)出,也可透過(guò)索引來(lái)修改值,比如obj2['d'] = 2
如果將字典導(dǎo)入,由于字典本身就是key-value對(duì)應(yīng)的格式,所以Series也會(huì)繼續(xù)沿用這種對(duì)應(yīng)方式
?
三、DataFrame
1、表的基本操作
Dataframe同樣也是可以將字典導(dǎo)入,并會(huì)對(duì)字典做索引,如下
?
對(duì)于數(shù)據(jù)量較大的資料,可以用head( )來(lái)查看前五項(xiàng)的數(shù)據(jù)。
使用frame['列名稱']或是frame.列名稱的方式查看某一列的數(shù)據(jù)。使用frame.loc['索引值']可以查看某一行的數(shù)據(jù)。而frame.values則可以看到完整的行列數(shù)據(jù)
可以對(duì)選取的值進(jìn)行修改,例如frame['year'] = 2000會(huì)把年份都修改成2000,del frame['year']則會(huì)把year這一列刪除, drop('1')會(huì)把這行數(shù)據(jù)刪除
如果字典導(dǎo)入時(shí)某個(gè)值缺失了會(huì)用NaN來(lái)表示
另外如果導(dǎo)入的是嵌套式字典的話則會(huì)把第一層當(dāng)做列,第二層的key為行,下面為嵌套式的案例
可以看到第一層的Nevada和Ohio為列,第二層的key 2000,2001,2002 為列,缺失的數(shù)據(jù)顯示為NaN
?DataFrame可以對(duì)行和列做編輯,frame = pd.DataFrame(np.arange(9).reshape(3,3), index = [ 'a', 'c', 'd' ], colume = ['Ohio', 'Texas', 'California']),就會(huì)成為下面的矩陣
?
2、計(jì)算
當(dāng)DataFrame對(duì)兩個(gè)表進(jìn)行運(yùn)算時(shí),假設(shè)一個(gè)表某個(gè)值要和另外一個(gè)表的值做計(jì)算,但是其中有一個(gè)值為空缺值(NaN),那運(yùn)算的結(jié)果就會(huì)是空缺值(NaN),例如5+NaN = NaN,下面為范例說(shuō)明
?
為了避免這種情況發(fā)生,我們會(huì)希望系統(tǒng)可以假設(shè)這個(gè)不存在的值為0,這樣我們的缺失值才不會(huì)在計(jì)算過(guò)程中擴(kuò)散,我們希望的是5+NaN = 5, 所以就需要讓pandas在做運(yùn)算的時(shí)候?qū)θ笔е笛a(bǔ)上數(shù)字,方法為在運(yùn)算指令后面加上fill_value這個(gè)選項(xiàng)。
?
另外在做矩陣的計(jì)算時(shí),如果是對(duì)單行做計(jì)算,則會(huì)使用廣播,對(duì)每行都進(jìn)行一次計(jì)算,如下圖
?
?3、排序
DataFrame也可以利用sort進(jìn)行排序,默認(rèn)的排序方式是由小到大,最后是NaN。可以指定以某列為基準(zhǔn)進(jìn)行排列,如下圖就是以b這一列為基準(zhǔn)進(jìn)行排列
另外還有一種排序方式稱為rank,他可以為Series里面的每個(gè)值大小做排序,并給與由小到大的評(píng)分(從1開(kāi)始),如下圖,由于第2行的-5最小,所以rank值為1,再依序增加。
?
4、重復(fù)標(biāo)簽索引
和關(guān)系型數(shù)據(jù)庫(kù)的唯一索引不同,pandas可以使用重復(fù)的索引,可使用以下代碼查看表索引是否有重復(fù)的值
使用索引查找數(shù)據(jù)時(shí),pandas會(huì)將所有相同索引的值都返回
?
?5、統(tǒng)計(jì)
pandas支援各式各樣的統(tǒng)計(jì),有常見(jiàn)的sum、mean、count等,可以可以查看圖表的各種統(tǒng)計(jì)數(shù)據(jù),下面為幾個(gè)統(tǒng)計(jì)的指令
?
轉(zhuǎn)載于:https://www.cnblogs.com/yenpaul/p/10120430.html
總結(jié)
以上是生活随笔為你收集整理的Python for Data Analysis 学习心得(二) - pandas介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何写python程序
- 下一篇: Python实现坦克大战——源代码