Series
Series是一種類似于一維數(shù)組的對象混滔,它由一組數(shù)據(jù)(各種NumPy數(shù)據(jù)類型)以及一組與之相關的數(shù)據(jù)標簽(即索引)組成憋活。僅由一組數(shù) 據(jù)即可產(chǎn)生最簡單的Series
obj = pd.Series([4, 7, -5, 3])
Series的字符串表現(xiàn)形式為:索引在左邊待德,值在右邊巩剖。由于我們沒 有為數(shù)據(jù)指定索引,于是會自動創(chuàng)建一個0到N1(N為數(shù)據(jù)的長度)的 整數(shù)型索引
可以通過Series 的values和index屬性獲取其數(shù)組表示 形式和索引對象
In [6]: obj.values
Out[6]: array([ 4, 7, -5, 3])
In [7]: obj.index
Out[7]: Int64Index([0, 1, 2, 3])
創(chuàng)建的Series帶有一個可以對各個數(shù)據(jù)點進行 標記的索引
In [8]: obj2 = pd.Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
In [9]: obj2
Out[9]: d 4
b 7
a -5
c 3
In [10]: obj2.index
Out[10]: Index([d, b, a, c], dtype=object)
通過索引的方式選取Series中的 單個或一組值
NumPy數(shù)組運算(如根據(jù)布爾型數(shù)組進行過濾遮怜、標量乘法鲜滩、應用 數(shù)學函數(shù)等)都會保留索引和值之間的鏈接
obj2[obj2>0]
d 4
b 7
c 3
dtype: int64
obj2*2
d 8
b 14
a -10
c 6
dtype: int64
如果數(shù)據(jù)被存放在一個Python字典中伴鳖,也可以直接通過這個字典 來創(chuàng)建Series
In [20]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
In [21]: obj3 = pd.Series(sdata)
In [22]: obj3
Out[22]: Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
如果只傳入一個字典,則結(jié)果Series中的索引就是原字典的鍵(有序排列)
In [23]: states = ['California', 'Ohio', 'Oregon', 'Texas']
In [24]: obj4 = pd.Series(sdata, index=states) #值徙硅,鍵
In [25]: obj4
Out[25]: California NaN Ohio 35000 Oregon 16000 Texas 71000
在pandas中榜聂,它用于表 示缺失或NA值)。我將使用缺失(missing)或NA表示缺失數(shù)據(jù)嗓蘑。pandas 的isnull和notnull函數(shù)可用于檢測缺失數(shù)據(jù)
In [26]: pd.isnull(obj4) In [27]: pd.notnull(obj4)
In [28]: obj4.isnull()
Series最重要的一個功能是:它在算術運算中 會自動對齊不同索引的數(shù)據(jù)
obj3
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
obj4
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
dtype: float64
obj3+obj4
California NaN
Ohio 70000.0
Oregon 32000.0
Texas 142000.0
Utah NaN
dtype: float64
Series對象本身及其索引都有一個name屬性
In [32]: obj4.name = 'population'
In [33]: obj4.index.name = 'state'
In [34]: obj4
Out[34]: state California NaN Ohio 35000 Oregon 16000 Texas 71000 Name: population
Series的索引可以通過賦值的方式就地修改