python/pandas

3. pandas Series 연산

Abokadoh 2023. 2. 17. 16:13
import numpy as np
import pandas as pd

Series는 index를 기준으로 연산한다. 

# <in>
s1 = pd.Series([1, 2, 3, 4],['a', 'b', 'c', 'd'])
s2 = pd.Series([6, 3, 2, 1],['d', 'c', 'b', 'a'])
print(s1)
print(s2)


# <out>
a    1
b    2
c    3
d    4
dtype: int64

d    6
c    3
b    2
a    1
dtype: int64

s1과 s2를 더하면

# <in>
s1 = pd.Series([1, 2, 3, 4],['a', 'b', 'c', 'd'])
s2 = pd.Series([6, 3, 2, 1],['d', 'c', 'b', 'a'])

s1 + s2


# <out>
a     2
b     4
c     6
d    10
dtype: int64

같은 index끼리 더 해지는 것을 확인할 수 있다.

 

산술연산

Series의 경우에도 scalar와의 연산은 각 원소별로 scalar와의 연산이 적용된다. 

# <in>
s1 = pd.Series([1, 2, 3, 4],['a', 'b', 'c', 'd'])

s1 ** 2


# <out>
a     1
b     4
c     9
d    16
dtype: int64

Series의 원소에 모두 적용되는 것을 확인할 수 있다. (broadcasting)

 

index pair가 맞지 않는 경우는 어떨까?

# <in>
s1 = pd.Series([1, 2, 3, 4],['a', 'b', 'c', 'd'])
s2 = pd.Series([6, 3, 2, 1],['d', 'c', 'b', 'a'])

s1['k'] = 7
s2['e'] = 9

s1 + s2


# <out>
a     2.0
b     4.0
c     6.0
d    10.0
e     NaN
k     NaN
dtype: float64

해당 index 'e', 'k'에 대해서는 NaN 값을 생성하는 것을  확인할 수 있다.