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)
留言