Pandas系列


系列(Series)是能夠儲存任何型別的資料(整數,字串,浮點數,Python物件等)的一維標記陣列。軸標籤統稱為索引。

pandas.Series

Pandas系列可以使用以下建構函式建立 -

pandas.Series( data, index, dtype, copy)。

建構函式的引數如下 -

編號 引數 描述
1 data 資料採取各種形式,如:ndarraylistconstants
2 index 索引值必須是唯一的和雜湊的,與資料的長度相同。 預設np.arange(n)如果沒有索引被傳遞。
3 dtype dtype用於資料型別。如果沒有,將推斷資料型別
4 copy 複製資料,預設為false

可以使用各種輸入建立一個系列,如 -

  • 陣列
  • 字典
  • 標量值或常數

建立一個空的系列

建立一個基本系列是一個空系列。

範例

#import the pandas library and aliasing as pd
import pandas as pd
s = pd.Series()
print s

執行上面範例程式碼,輸出結果如下 -

Series([], dtype: float64)

從ndarray建立一個系列

如果資料是ndarray,則傳遞的索引必須具有相同的長度。 如果沒有傳遞索引值,那麼預設的索引將是範圍(n),其中n是陣列長度,即[0,1,2,3…. range(len(array))-1] - 1]

範例1

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print s

執行上面範例程式碼,輸出結果如下 -

0   a
1   b
2   c
3   d
dtype: object

這裡沒有傳遞任何索引,因此預設情況下,它分配了從0len(data)-1的索引,即:03

範例2

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data,index=[100,101,102,103])
print s

執行上面範例程式碼,輸出結果如下 -

100  a
101  b
102  c
103  d
dtype: object

在這裡傳遞了索引值。現在可以在輸出中看到自定義的索引值。

從字典建立一個系列

字典(dict)可以作為輸入傳遞,如果沒有指定索引,則按排序順序取得字典鍵以構造索引。 如果傳遞了索引,索引中與標籤對應的資料中的值將被拉出。

範例2

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print s

執行上面範例程式碼,輸出結果如下 -

a 0.0
b 1.0
c 2.0
dtype: float64

注意 - 字典鍵用於構建索引。

範例

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print s

執行上面範例程式碼,輸出結果如下 -

b 1.0
c 2.0
d NaN
a 0.0
dtype: float64

注意觀察 - 索引順序保持不變,缺少的元素使用NaN(不是數位)填充。

從標量建立一個系列

如果資料是標量值,則必須提供索引。將重複該值以匹配索引的長度。

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
s = pd.Series(5, index=[0, 1, 2, 3])
print s

執行上面範例程式碼,得到以下結果 -

0  5
1  5
2  5
3  5
dtype: int64

從具有位置的系列中存取資料

系列中的資料可以使用類似於存取ndarray中的資料來存取。

範例-1

檢索第一個元素。比如已經知道陣列從零開始計數,第一個元素儲存在零位置等等。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the first element
print s[0]

執行上面範例,得到以下結果 -

1

範例-2

檢索系列中的前三個元素。 如果a:被插入到其前面,則將從該索引向前的所有專案被提取。 如果使用兩個引數(使用它們之間),兩個索引之間的專案(不包括停止索引)。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the first three element
print s[:3]

執行上面範例,得到以下結果 -

a  1
b  2
c  3
dtype: int64

範例-3

檢索最後三個元素,參考以下範例程式碼 -

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the last three element
print s[-3:]

執行上面範例程式碼,得到以下結果 -

c  3
d  4
e  5
dtype: int64

使用標籤檢索資料(索引)

一個系列就像一個固定大小的字典,可以通過索引標籤獲取和設定值。

範例1

使用索引標籤值檢索單個元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve a single element
print s['a']

執行上面範例程式碼,得到以下結果 -

1

範例2

使用索引標籤值列表檢索多個元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve multiple elements
print s[['a','c','d']]

執行上面範例程式碼,得到以下結果 -

a  1
c  3
d  4
dtype: int64

範例3

如果不包含標籤,則會出現異常。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve multiple elements
print s['f']

執行上面範例程式碼,得到以下結果 -

…
KeyError: 'f'