數據科學--Pandas基本使用
*結構化數據分析利器(依賴numpy)
*提供了多種高級數據結構
*將大的數據索引和處理能力
pandas中的主要數據對象是Series和DataFrame。
目錄:
- Series
- DataFrame
- 深入理解Series和DataFrame
- Pandas的IO操作
- DataFrame的Selecting和indexing
- Reindexing Series and DataFrame
- 關於NaN
- 多級index
- Mapping and Replace
No.1 Series
Series是一個一維的類似的數組對象,包含一個數組的數據(任何NumPy的數據類型)和一個與數組關聯的數據標籤,被叫做索引 。Seriers的互動式顯示的字元串表示形式是索引在左邊,值在右邊。它和python dict類型很像,基本一樣!就如下所述:Series是一個定長的,有序的字典,因為它把索引和值映射起來了。它可以適用於許多需要一個字典的函數。總結說就是,他像一個數組,你可以像數組那樣索引,他也想一個字典,你可以像字典那樣索引。
下面展示notebook中的series操作。
No.2 DataFrame
DataFrame 是一種二維的數據結構,非常接近於電子表格或者類似 mysql 資料庫的形式。它的豎行稱之為 columns,橫行跟前面的 Series 一樣,稱之為 index,也就是說可以通過 columns 和 index 來確定一個主句的位置。(有人把 DataFrame 翻譯為「數據框」,是不是還可以稱之為「筐」呢?向裡面裝數據嘛。)
下面開始notebook展示操作,先來看一個神奇的數據獲取方式,就是很普通的複製粘貼就可以獲取到網頁的數據。
首先引入需要的東西
然後就是關鍵了,以下代碼會自動打開這個link
然後選中下面的代碼排行,contrl C複製。
然後進入notebook
這樣就創建了一個dataframe,是不是有意思。
接下來就是基本操作了。
No.3 深入理解Series和DataFrame
首先準備好數據
對於series,首先取字典data裡面某一個key和其對應的values,並添加index
對於dataframe,首先直接把data轉換成dataframe
執行for循環輸出值,並且查看row的類型。
一個dataframe由多個series組成,那麼dataframe可以直接由series來創建。
Series與DataFrame對比。
No.4 Pandas的IO操作
首先讀取網頁裡面的一段內容
把數據寫出為csv文件
下面把dataframe轉換成json格式
把json轉換成格式
把dataframe轉換成html
然後再用瀏覽器打開html看看
把dataframe轉換成excel表格
No.5 DataFrame的Selecting和indexing
首先讀取進一個csv文件,這是拉鉤的五千多條職位數據,這裡注意一點,就是中文要記得encoding到gb2312,不然是讀不進來的。
然後取出頭5條數據
取出最後5條數據
任意讀取需要的列並且只讀任意10行數據
使用iloc方法讀取指定索引的列
使用loc方法讀取指定索引名稱的列,注意和iloc的區別
No.6 Reindexing Series and DataFrame
1、series reindex
首先創建series
reindex操作並且增加新的index且添加值
通過ffill增加新的值,1到5為a,5到8為b,8到15為c
2、DataFrame reindex
創建dataframe
reindex操作
刪除某一行某一列,axis=0表示刪除的是行,axis=1表示刪除的是列
No.7 關於NaN
NaN:Not a Number
和NaN做運算結果都為NaN
1、NaN in Series
2、NaN in DataFrmae
任意一行只要有NaN就drop
任意一列只要有NaN就drop
任意一行全部為NaN就drop
任意一行有NaN就drop
只要一行NaN超過2個就drop
為NaN填充指定value
No.8 多級index
1、Series
首先創建一個多級Series
對多級Series中的數據進行一些操作
把多級Series轉換成DataFrame
把dataframe轉換成series
2、DataFrame
創建多級DataFrame
對多級DataFrame進行一些操作
No.9 Mapping and Replace
通過map方法添加columns
首先演示一般方法,就是通過Series來添加dataframe的columns
這種方法在index為a,b,c的時候Series需要加上index,也就是我們需要關注index,這一點來講不如map方法
下面來看看replace
--------------------------------------------------------------------------
Pandas基本使用就到這裡了
推薦閱讀:
※10min手寫(一):伺服器內存監控系統
※為什麼 x in range(1000000000000001) 的執行速度這麼快
※如何看待將Python代碼轉換成Go代碼並進一步編譯的 Grumpy 項目?
※基於ArcGIS的python編程:2.python基礎(一)