[Pandas教學] Series的計算, 用法(單維度資料 數據分析)

在上一篇文章中已經介紹了Series的基礎,在這邊要介紹Series的計算方法以及如何取值。這在之後學習Dataframe上很重要,因為在使用Dataframe時常常會用到Series的計算。

數值運算

對Pandas的Series可以直接用數值進行四則運算。可以看到下面的例子。

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

上面的代碼分別對Series的值做了加減乘除,輸出之後會看到下面的結果。

a    11
b    12
c    13
d    14
e    15
dtype: int64
a   -9
b   -8
c   -7
d   -6
e   -5
dtype: int64
a     3
b     6
c     9
d    12
e    15
dtype: int64
a    0.5
b    1.0
c    1.5
d    2.0
e    2.5
dtype: float64

Series與Series計算

Series同樣也可以與Series做四則運算,但要注意的是index名稱是否相同。我們先來看當index名稱相同時的運算結果。

import pandas as pd
s1 = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
s2 = pd.Series([6, 7, 8, 9, 10], index=['a', 'b', 'c', 'd', 'e'])
print(s1+s2)
print(s1-s2)
print(s1*s2)
print(s1/s2)
a     7
b     9
c    11
d    13
e    15
dtype: int64
a   -5
b   -5
c   -5
d   -5
e   -5
dtype: int64
a     6
b    14
c    24
d    36
e    50
dtype: int64
a    0.166667
b    0.285714
c    0.375000
d    0.444444
e    0.500000
dtype: float64

接著我們再來看看當index名稱不同時會發生什麼變化。

import pandas as pd
s1 = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
s2 = pd.Series([6, 7, 8, 9, 10], index=['c', 'd', 'e', 'f', 'g'])
print(s1+s2)
print(s1-s2)
print(s1*s2)
print(s1/s2)
a     NaN
b     NaN
c     9.0
d    11.0
e    13.0
f     NaN
g     NaN
dtype: float64
a    NaN
b    NaN
c   -3.0
d   -3.0
e   -3.0
f    NaN
g    NaN
dtype: float64
a     NaN
b     NaN
c    18.0
d    28.0
e    40.0
f     NaN
g     NaN
dtype: float64
a         NaN
b         NaN
c    0.500000
d    0.571429
e    0.625000
f         NaN
g         NaN
dtype: float64

由以上結果我們可以得知當index名稱不同時,只有兩個Series有共同名稱的index值才會被計算,不同名稱的index值會變成NaN。

Sereis的邏輯演算

最後要來介紹的是在Dataframe中很常用到的邏輯演算。我們可以對各個index做邏輯演算,來判斷他的bool是True還是Fasle。

例如:透過下面的代碼我們可以判斷各個index的數值是否比 3還要大。

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

另外,我們也可以使用.index來判斷index名稱。例如:判斷index名稱是否為’c’。

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

但是這邊要特別注意,使用.index的輸出結果是numpy的ndarray。

留言