1 python-數據描述與分析

數據描述與分析
在進行數據分析之前 , 我們需要做的事情是對數據有初步的了解,這個了解就涉及對行業的了解和對數據本身的敏感程度,通俗來說就是對數據的分布有大概的理解,此時我們需要工具進行數據的描述,觀測數據的形狀等;而后才是對數據進行建模分析,挖掘數據中隱藏的位置信息 。目前在數據描述和簡單分析方面做的比較好的是Pandas庫 。當然,它還需要結合我們之前提到的Numpy,Scipy等科學計算相關庫才能發揮功效 。
1.Pandas 數據結構在進行Pandas相關介紹時我們首先需要知道的是Pandas 的兩個數據結構(即對象)Series 和 DataFrame,這是Pandas的核心結構,掌握了此二者結構和屬性要素,會在具體的數據處理過程中如虎添翼 。
1.1 Series 簡介 Series 是一種類似于以為數據的對象,它由兩部分組成,第一部分是一維數據,另外一部分是與此一維數據對應的標簽數據 。具體如下:
import pandas as pdcenterSeries =pd.Series(["中國科學院","文獻情報中心","大樓","北四環西路",])print (centerSeries)#output:0中國科學院1文獻情報中心2大樓3北四環西路dtype: object因為我們沒有指定它的標簽數據,而python默認是通過數字排序進行標識 , 接下來給他添加標示數據,具體如下:
centerSeries =pd.Series(["中國科學院","文獻情報中心","大樓","北四環西路",],index=["a","b","c","d"])print (centerSeries) #index的size和Series的size必須一樣長,否則報錯#output:a中國科學院b文獻情報中心c大樓d北四環西路dtype: object對比之前的默認標識,我們可以看出它由1,2,3,4變成了a,b,c,d 。接下來將解釋這樣標識的意義,具體如下:
import pandas as pdcenterSeries =pd.Series(["中國科學院","文獻情報中心","大樓","北四環西路",],index=["a","b","c","d"])print (centerSeries[0])#通過一維數組進行獲取數據print (centerSeries[1])print (centerSeries["c"])#通過標識index獲取數據print (centerSeries["d"])#output:中國科學院文獻情報中心大樓北四環西路另外,我們可以看到通過一維數組格式獲取數據和通過index標識獲取數據都可以 , 這樣的index就像曾經學過的數據庫中的id列的作用,相當于建立了每個數據的索引 。當然,針對Series的操作不只限于此,還有很多需要我們自己去通過“help”查看得到的 。
1.2 DataFrame 簡介DataFrame 是一個表格型的數據結構 , 它包含有列和行的索引,當然你也可以把它看作是由Series組織成的字典 。需要說明的是,DataFrame的每一列中不需要數據類型相同,且它的數據是通過一個或者多個二維塊進行存放,在了解DataFrame之前如果讀者對層次化索引有所了解,那么DataFrame 可能相對容易理解,當然如果讀者并不知道何謂層次化索引也沒關系 , 舉個例子:他類似于常見的excel的表格格式,可將它理解為一張excel表 , 具體如下:
#簡單的DataFrame 制作#字典格式的數據data = https://www.huyubaike.com/biancheng/{"name":["國科圖","國科圖","文獻情報中心","文獻情報中心"],"year":["2012","2013","2014","2015"],"local":["北四環西路","北四環西路","北四環西路","北四環西路"],"student":["甲","乙","丙","丁"]}centerDF = pd.DataFrame(data)print(centerDF)#output: nameyearlocal student0國科圖2012北四環西路甲1國科圖2013北四環西路乙2文獻情報中心2014北四環西路丙3文獻情報中心2015北四環西路丁#調整列的順序data = https://www.huyubaike.com/biancheng/{"local":["北四環西路","北四環西路","北四環西路","北四環西路"],"name":["國科圖","國科圖","文獻情報中心","文獻情報中心"],"year":["2012","2013","2014","2015"],"student":["甲","乙","丙","丁"]}centerDF = pd.DataFrame(data,columns=["year","name","local","student"])print(centerDF)#output:yearnamelocal student02012國科圖北四環西路甲12013國科圖北四環西路乙22014文獻情報中心北四環西路丙32015文獻情報中心北四環西路丁#更改index的默認設置data = https://www.huyubaike.com/biancheng/{"name":["國科圖","國科圖","文獻情報中心","文獻情報中心"],"year":["2012","2013","2014","2015"],"local":["北四環西路","北四環西路","北四環西路","北四環西路"],"student":["甲","乙","丙","丁"]}centerDF = pd.DataFrame(data,columns=["year","name","local","student"],index=["a","b","c","d"])print(centerDF)#output:yearnamelocal studenta2012國科圖北四環西路甲b2013國科圖北四環西路乙c2014文獻情報中心北四環西路丙d2015文獻情報中心北四環西路丁既然DataFrame 是行列格式的數據 , 那么理所當然可以通過行、列的方式進行數據獲??,按列进行数据据获? ,具體如下:

推薦閱讀