pandas的資料結構之一series
阿新 • • 發佈:2018-11-09
Pandas的資料結構
1、Series
Series是一種類似於一維陣列的物件,由下面兩個部分組成:
- index:相關的資料索引標籤
- values:一組資料(ndarray型別)
series的建立方法:
1.直接傳入一個列表
s1 = Series([1,2,3,4])
s1
0 1 1 2 2 3 3 4 dtype: int64
檢視series物件的屬性: s1.index # 索引 s1.values
還可以帶上index引數,表示裡這個引數作為索引 s2 = Series(data=[1,2,3,4],index=list('abcd'))
2.用字典的方式去建立
Series({'a':1,'b':2,'c':3}) a 1 b 2 c 3 dtype: int64
series的索引和切片
顯式索引:
- 使用index中的元素作為索引值
- 使用.loc['索引名'](推薦)
s1 = Series(data=[150,150,150,300],index=list('語數外綜')) s1 語 150 數 150 外 150 綜 300 dtype: int64
s1.loc[['語','外']] # 同一個維度 取多個值 要用中括號括起來 s1.loc[['語','語']] s1.loc[['綜','語']] s1.loc['語':'外'] # 文字索引 切片 開始位置和結束位置都能取到
s2 = Series(data=[1,2,3,4,5,6],index=list('abcdef'))
s2
s2.loc['b':'e':2] # 也可以跳著取 2代表的是step # s2.loc['e':'b':-1] # 注意 如果想倒著取 前面切片的屬性 也得是倒著的
隱式索引:
- 使用整數作為索引值
- 使用.iloc[ 索引號 ](推薦)
s2.iloc[0] # 整數陣列形式的索引 通過iloc同樣可以使用 s2.iloc[[2,2,2,2,2]] s2.iloc[[3,2,1,0]] s2.loc['a':'c'] s2.iloc[0:3] # 顯示索引 切片的時候是 包括最後一個的 隱式索引 不包括最後一個
series的常用屬性和方法
可以把Series看成一個定長的有序字典
可以通過shape,size,index,values等得到series的屬性
s2.head() # 如果不傳引數 預設展示頭5個內容 s2.tail() # 檢視最後的幾個
Series中如果值是None,會被轉成NaN。並且計算時會被當成0(ndarray不會)
可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull() 函式檢測值為None或NaN的資料
另外 series物件有一個name屬性可以用來區分不同的series
series的運算
(1) 適用於numpy的陣列運算也適用於Series
s2 a 1 b 2 c 3 d 4 e 5 f 6 dtype: int64 #s2+2 s2*2 a 2 b 4 c 6 d 8 e 10 f 12 dtype: int64
(2) Series之間的運算
- 在運算中自動對齊不同索引的資料
- 如果索引不對應,則補NaN(值和NaN相加的結果還是NaN,如果想要讓NaN的值當作0處理,可以用s1.add(s2,fill_value=0)來處理)