[Pandas教學] Series的基礎

應用篇

Series可以用index來對Sequence Object命名,同時也可以當作DataFrame的一部分。

為了讓讀者們比較好複製會像之前的文章一樣寫代碼,但是推薦使用jupyter notebook或是ipython來寫會比較容易。

產生Series

首先我們來試試看產生Series

沒有指定Label(沒有指定index)的情況下產生Series

import pandas as pd
series = pd.Series([1, 2, 3, 4, 5])
print(series)

輸入上面的代碼後會出現下面的結果

0    1
1    2
2    3
3    4
4    5
dtype: int64

雖然這次筆者是使用List但是也可以單純使用numpy.array等等。

另外,左側的0~4是index的名稱,如果沒有指定的話會自動從0代入。

指定Label(改變index)的情況下產生Series

也可以自己指定Series的index。

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

就會出現下面的index。

a    1
b    2
c    3
d    4
e    5
dtype: int64

從字典(dictionary)產生Series

剛剛介紹了從list產生Series,當然也可以直接透過字典來產生Series。

import pandas as pd
series = pd.Series({'a' : 1, 'b' : 2, 'c' : 3})
print(series)

透過字典生成Series的好處就是會像以下一樣直接代入index名稱。

a    1
b    2
c    3
dtype: int64

讀取Series資料

我們可以透過指定index名稱來讀取Series的資料。主要有兩種方式,第一種是以[]來指定index名稱,第二種是透過.來指定index名稱。

import pandas as pd
series = pd.Series({'a' : 1, 'b' : 2, 'c' : 3})
print(series['a']) 
print(series.b)

透過上面的代碼分別可以讀取到1跟2。

1
2

另外,如果使用默認的index名稱的話可以使用Slice的方式來讀取Series的數值。

import pandas as pd
series = pd.Series([1, 2, 3, 4, 5])
print(series[0:3])
0    1
1    2
2    3
dtype: int64

更改Series

如果想要更改Series裡的數值的話可以直接代入想要更換的數字。例如:以下的代碼會將第0項數值改成500。

import pandas as pd
series = pd.Series([1, 2, 3, 4, 5])
series[0] = 500
print(series)

結果會像以下這樣。

0    500
1      2
2      3
3      4
4      5
dtype: int64

也可以透過剛剛學到的Slice的方式一口氣更改Series部分的數值。

import pandas as pd
series = pd.Series([1, 2, 3, 4, 5])
series[0:3] = pd.Series([100, 200, 300])
print(series)
0    100
1    200
2    300
3      4
4      5
dtype: int64

更改為List

由於Pandas的Series是Sequence的數據,我們只需要下面一行代碼就可以將它更改成List的數據。

list(series)

留言