1. 程式人生 > >pandas的資料結構之一series

pandas的資料結構之一series

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
語    150150150300
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)來處理)