pandas學習之Series

搞機器學習、數據可視化這方面的工作、學習,pandas應該是必須要學習的內容。

pandas有兩大數據結構:series以及dataframe。

這一篇文章寫一些關於series的相關知識。

官方學習資料:https://pandas.pydata.org/pandas-docs/stable/getting_started/dsintro.html(下面代碼的例子取自官網)

 

series可以看做是一個一維的數據結構,多種數據類型可以填充入series。

那麼如何創建一個series呢?

s = pd.Series(data, index=index)

series可以由ndarray、dict、scalar value進行構造。

由ndarray構造
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

由dict構造
d = {'a': 0., 'b': 1., 'c': 2.}
pd.Series(d)

由scala value構造 
pd.Series(5., index=['a', 'b', 'c', 'd', 'e'])

series就像ndarray一樣,所以ndarray相關的方法在series對象上也能夠使用。

例如:索引取值,切片,“過濾數據”等等

索引取值
s[0]

切片
s[:3]

過濾數值
s[s > s.median()]

當然,series也像numpy的ndarray一樣,有一個類型的字段:

s.dtype
->dtype('float64')

一般直接打印series的對象時,dtype會顯示在最後面。

 

series也像dict一樣,它可以支持索引以及key的檢測,例如:檢測key=y是否在series內。

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d)
print('f' in d)
->False

 

series也可以像向量一樣進行加減等操作:

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d)
print(d+d)
->
b    2
a    0
c    4
dtype: int64


print(d[1:]+d[:-1])
->
a    0.0
b    NaN
c    NaN
dtype: float64

當加法前後的index不匹配時,對應的value會自動推斷爲NaN

當然,你也可以給series取一個專屬名字,只要在構建series時給一個name參數就可以了。

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d, name='abc')
->
b    1
a    0
c    2
Name: abc, dtype: int64

不過,當你rename這個series對象的時候,它兩就不是一個對象了。

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d,name='abc')
c1=d.rename('ab')
print(id(c1),id(d))
->感興趣可以看看結果,應該是不一致的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章