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