pandas入門

來源:互聯網
上載者:User

標籤:字串處理   array   數組   簡單   res   自動識別   功能   ops   內容   

【原】十分鐘搞定pandas 

 

本文是對pandas官方網站上《10 Minutes to pandas》的一個簡單的翻譯,原文在這裡。這篇文章是對pandas的一個簡單的介紹,詳細的介紹請參考:Cookbook 。習慣上,我們會按下面格式引入所需要的包:

 

一、            建立對象

可以通過 Data Structure Intro Setion 來查看有關該節內容的詳細資料。

1、可以通過傳遞一個list對象來建立一個Series,pandas會預設建立整型索引:

 

2、通過傳遞一個numpy array,時間索引以及欄標籤來建立一個DataFrame:

 

3、通過傳遞一個能夠被轉換成類似序列結構的字典對象來建立一個DataFrame:

 

4、查看不同列的資料類型:

 

5、如果你使用的是IPython,使用Tab自動補全功能會自動識別所有的屬性以及自訂的列,中是所有能夠被自動識別的屬性的一個子集:

 

二、            查看資料

詳情請參閱:Basics Section

 

1、  查看frame中頭部和尾部的行:

 

2、  顯示索引、列和底層的numpy資料:

 

3、  describe()函數對於資料的快速統計匯總:

 

4、  對資料的轉置:

 

5、  按軸進行排序

 

6、  按值進行排序

 

三、            選擇

雖然標準的Python/Numpy的選擇和設定運算式都能夠直接派上用場,但是作為工程使用的代碼,我們推薦使用經過最佳化的pandas資料訪問方式:.at, .iat, .loc, .iloc 和 .ix詳情請參閱Indexing and Selecing Data 和 MultiIndex / Advanced Indexing。

l  擷取

1、 選擇一個單獨的列,這將會返回一個Series,等同於df.A:

 

2、 通過[]進行選擇,這將會對行進行切片

 

l  通過標籤選擇

1、 使用標籤來擷取一個交叉的地區

 

2、 通過標籤來在多個軸上進行選擇

 

3、 標籤切片

 

4、 對於返回的對象進行維度縮減

 

5、 擷取一個標量

 

6、 快速存取一個標量(與上一個方法等價)

 

l  通過位置選擇

1、 通過傳遞數值進行位置選擇(選擇的是行)

 

2、 通過數值進行切片,與numpy/python中的情況類似

 

3、 通過指定一個位置的列表,與numpy/python中的情況類似

 

4、 對行進行切片

 

5、 對列進行切片

 

6、 擷取特定的值

 

l  布爾索引

1、 使用一個單獨列的值來選擇資料:

 

2、 使用where操作來選擇資料:

 

3、 使用isin()方法來過濾:

 

l  設定

1、 設定一個新的列:

 

2、 通過標籤設定新的值:

 

3、 通過位置設定新的值:

 

4、 通過一個numpy數組設定一組新值:

 

上述操作結果如下:

 

5、 通過where操作來設定新的值:

 

四、            缺失值處理

在pandas中,使用np.nan來代替缺失值,這些值將預設不會包含在計算中,詳情請參閱:Missing Data Section。

1、  reindex()方法可以對指定軸上的索引進行改變/增加/刪除操作,這將返回未經處理資料的一個拷貝:、

 

2、  去掉包含缺失值的行:

 

3、  對缺失值進行填充:

 

4、  對資料進行布爾填充:

 

五、            相關操作

詳情請參與 Basic Section On Binary Ops

l  統計(相關操作通常情況下不包括缺失值)

1、  執行描述性統計:

 

2、  在其他軸上進行相同的操作:

 

3、  對於擁有不同維度,需要對齊的對象進行操作。Pandas會自動的沿著指定的維度進行廣播:

 

l  Apply

1、  對資料應用函數:

 

l  長條圖

具體請參照:Histogramming and Discretization

 

 

l  字串方法

Series對象在其str屬性中配備了一組字串處理方法,可以很容易的應用到數組中的每個元素,如下段代碼所示。更多詳情請參考:Vectorized String Methods.

 

六、            合并

Pandas提供了大量的方法能夠輕鬆的對Series,DataFrame和Panel對象進行各種符合各種邏輯關係的合併作業。具體請參閱:Merging section

l  Concat

 

l  Join 類似於SQL類型的合并,具體請參閱:Database style joining

 

l  Append 將一行串連到一個DataFrame上,具體請參閱Appending:

 

七、            分組

對於”group by”操作,我們通常是指以下一個或多個操作步驟:

l  (Splitting)按照一些規則將資料分為不同的組;

l  (Applying)對於每組資料分別執行一個函數;

l  (Combining)將結果組合到一個資料結構中;

詳情請參閱:Grouping section

 

1、  分組並對每個分組執行sum函數:

 

2、  通過多個列進行分組形成一個層次索引,然後執行函數:

 

八、            Reshaping

詳情請參閱 Hierarchical Indexing 和 Reshaping。

l  Stack

 

 

 

l  樞紐分析表,詳情請參閱:Pivot Tables.

 

可以從這個資料中輕鬆的產生樞紐分析表:

 

九、            時間序列

Pandas在對頻率轉換進行重新採樣時擁有簡單、強大且高效的功能(如將按秒採樣的資料轉換為按5分鐘為單位進行採樣的資料)。這種操作在金融領域非常常見。具體參考:Time Series section。

 

1、  時區表示:

 

2、  時區轉換:

 

3、  時間跨度轉換:

 

4、  時期和時間戳記之間的轉換使得可以使用一些方便的算術函數。

 

十、            Categorical

從0.15版本開始,pandas可以在DataFrame中支援Categorical類型的資料,詳細 介紹參看:categorical introduction和API documentation。

 

1、  將原始的grade轉換為Categorical資料類型:

 

2、  將Categorical類型資料重新命名為更有意義的名稱:

 

3、  對類別進行重新排序,增加缺失的類別:

 

4、  排序是按照Categorical的順序進行的而不是按照字典順序進行:

 

5、  對Categorical列進行排序時存在空的類別:

 

十一、           畫圖

具體文檔參看:Plotting docs

 

對於DataFrame來說,plot是一種將所有列及其標籤進行繪製的簡便方法:

 

 

十二、           匯入和儲存資料

l  CSV,參考:Writing to a csv file

1、  寫入csv檔案:

 

2、  從csv檔案中讀取:

 

l  HDF5,參考:HDFStores

1、  寫入HDF5儲存:

 

2、  從HDF5儲存中讀取:

 

l  Excel,參考:MS Excel

1、  寫入excel檔案:

 

2、  從excel檔案中讀取:

 

pandas入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.