接續上次的內容,Series 也可以視為一個長度固定且有序的字典,因為它儲存索引值和資料值的對映關係,它可以在許多適合使用字典的情況下使用:
In [28]: "b" in obj2
Out[28]: True
In [29]: "e" in obj2
Out[29]: False
如果使用 Python 字典來儲存資料,可以藉由傳入字典來建立一個 Series:
In [30]: sdata = {"Ohio": 35000, "Texas": 71000, "Oregon": 16000, "Utah": 5000}
In [31]: obj3 = pd.Series(sdata)
In [32]: obj3
Out[32]:
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
使用 to_dict
方法可以將 Series 轉換回字典:
In [33]: obj3.to_dict()
Out[33]: {"Ohio": 35000, "Texas": 71000, "Oregon": 16000, "Utah": 5000}
僅傳入字典產生的 Series 的索引順序將語字典的 Keys 方法所顯示的索引鍵順序相同,後者取決於索引鍵被插入的順序。你可以改變這個順序,做法是傳入一個 index,指定想在 Series 裡看到的字典鍵順序:
In [34]: states = ["California", "Ohio", "Oregon", "Texas"]
In [35]: obj4 = pd.Series(sdata, index=states)
In [36]: obj4
Out[36]:
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
dtype: float64
因為 California
的值找不到,所以被顯示成 NaN
(Not a Number),pandas 用來表示缺失值,因為 Utah
不在 states
裡,所以產生的物件沒有它。
在 pandas 裡,可以使用 isna
與 notna
來檢測缺失值。
In [37]: pd.isna(obj4)
Out[37]:
California True
Ohio False
Oregon False
Texas False
dtype: bool
In [38]: pd.notna(obj4)
Out[38]:
California False
Ohio True
Oregon True
Texas True
dtype: bool
今日的分享就到這囉,我們明天見,掰掰!