pandas,

完全攻略pandas文檔教學 Indexing and Selecting Data

Champion Champion Follow Mar 19, 2021 · 2 mins read
完全攻略pandas文檔教學 Indexing and Selecting Data
Share this

在使用pandas的時候最常使用到的就是索引(index),常常需要在資料表裡找出需要的資料,這時候就需要索引來幫助我們找出我們所需要的資料,在看完文檔後,整理了一下索引的使用方法

可使用的資料類型:Series,DataFrame,Panel

基本的索引:

我們使用[  ]來進行索引,就像下面這樣,左圖為我們建立的資料表,右圖為選取A欄位的結果

或者可以一次傳入多個欄位

還有另外一種方法可以對資料進行索引,利用屬性 . 來進行索引,比如說像下面這樣:

但是這種方法限制比較多所以還是用 [  ] 進行索引會比較好,限制如下:

1.索引名稱必須是valid identifier

2.索引名稱不能和python中存在的函數名稱一樣,例:df.min

3.索引名稱不能是index,major_axis,minor_axis,items,labels

上面用 [  ] 和 . 進行索引的方式是比較直覺的方法,但是常常我們並不事先知道資料的類型,運算上會有一些最佳化的限制,所以pandas提供了下面兩種方法:

1.使用.loc[]

這個方法會使用標籤(label)去尋找資料,總共有五種類型的標籤可輸入

(1)單一標籤,例如:’a’,’b’…..

(2)一個清單(list)或者陣列(array),例如:[“a”,”b”,”c”]

(3)切片標籤(slice object with labels),例如:”a”:”f”(兩側皆有包含)

(4)布林值陣列(boolean array)

(5)可調用函數(callable function)

何時會發生Error:當輸入的標籤找不到資料的時候,會出現KeyError

以下介紹幾個例子來讓大家看看

使用單一標籤

使用一個陣列去索引

使用切片標籤

使用布林值陣列

使用可調用函數

當使用loc的切片索引的時候會將切片範圍中的切片包含進來,若索引排序過後,即使切片範圍的兩邊都沒有在資料裡,還是會把範圍內的資料選取出來,反之若沒排序,就會發生KeyError,舉個例子給大家看看

將Series排序後在選取

2.使用.iloc[]

這個方法會使用整數值去尋找資料,也和.loc一樣有上面這五種類型可以輸入

何時會發生Error:當輸入的整數索引超過資料的索引的時候,會出現IndexError(除了切片索引之外),但是使用.loc時若超過並不會發生Error會把輸入範圍內包含的資料找出來

以下幾個例子給大家看看:

單一整數索引

使用一個陣列去索引

切片索引

布林值陣列

注意:在使用loc和iloc時要注意一件事,pandas會先進行行對齊(column alignment)才會將值進行轉換,什麼意思呢?看下面的例子

本來選取A和B行的值是這樣

如果你想要將這兩行的值互換,按照下面這樣做這樣,pandas會先A行和A行對齊,B行和B行對齊,因此並不會改變A行和B行的值

如果想要將A行和B行的值互換那就必須指定互換的是A行和B行的值,不然pandas會先進行行對齊,值就不會互換

那以上就是關於Pandas索引方法的介紹,如果有什麼問題大家可以在下方留言,我會盡力回答大家!!!如果喜歡我的文章,可以幫我拍拍手哦~~~

Join Newsletter
Get the latest news right in your inbox. We never spam!
Champion
Written by Champion Follow
Hi, I am Champion, the author of CHAMPION.AI, I will share some AI and investment articles. I hope you like it.