정수 나눗셈(floor division) 연산은 판다스 시리즈의 요소에 대해 리스트나 튜플 같은 다른 파이썬 시퀀스를 기준으로도 적용할 수 있습니다.
판다스 시리즈 클래스에서 제공하는 floordiv() 메서드를 사용하면, 시리즈 객체의 각 요소를 다른 시리즈, 스칼라 값 또는 리스트 형태의 객체와 요소 단위(element-wise)로 정수 나눗셈할 수 있습니다.
이 글에서는 몇 가지 예제를 통해 floordiv() 메서드가 파이썬 리스트의 요소들과 어떻게 정수 나눗셈 연산을 수행하는지 살펴보겠습니다.
예제 1
아래는 floordiv() 메서드를 활용한 정수 나눗셈 연산의 동작 방식을 이해하기 위한 예제입니다.
import pandas as pd
import numpy as np
# 판다스 시리즈 생성
s = pd.Series({'A':None,'B':58,"C":85, "D":28, 'E':np.nan, 'G':60 })
print("Series object:",s)
# 정수 리스트를 사용해 floordiv() 적용
print("Output:")
print(s.floordiv(other=[18, 16, 9, 15, 14, 6]))설명
위 코드에서는 floordiv() 함수를 사용하여 시리즈 객체 "s"를 파이썬 리스트와 정수 나눗셈합니다. 주어진 시리즈 객체 "s"에는 인덱스 위치 "A"와 "E"에 결측값(missing value)이 포함되어 있습니다.
출력 결과
실행하면 다음과 같은 출력을 얻을 수 있습니다.
Series object: A NaN B 58.0 C 85.0 D 28.0 E NaN G 60.0 dtype: float64 Output: A NaN B 3.0 C 9.0 D 1.0 E NaN G 10.0 dtype: float64
위 출력 결과에서 볼 수 있듯이, floordiv() 메서드는 주어진 시리즈 객체를 파이썬 리스트로 정수 나눗셈한 결과를 성공적으로 반환했습니다. fill_value 매개변수에 값을 지정하지 않았기 때문에 결측값(NaN)은 그대로 결과에 유지됩니다.
예제 2
이번에는 fill_value 매개변수를 사용하여 결측값을 대체한 상태에서 정수 나눗셈 연산을 적용해 보겠습니다.
import pandas as pd
import numpy as np
# 판다스 시리즈 생성
s = pd.Series({'A':None,'B':58,"C":85, "D":28, 'E':np.nan, 'G':60 })
print("Series object:",s)
# fill_value로 결측값을 대체하며 floordiv() 적용
print("Output:")
print(s.floordiv(other=[18, 16, 9, 15, 14, 6], fill_value=20))출력 결과
실행 결과는 아래와 같습니다.
Series object: A NaN B 58.0 C 85.0 D 28.0 E NaN G 60.0 dtype: float64 Output: A 1.0 B 3.0 C 9.0 D 1.0 E 1.0 G 10.0 dtype: float64
위 코드를 실행하면 결측값이 스칼라 값 20으로 대체된 후 정수 나눗셈 연산이 수행됩니다. 그 결과 인덱스 "A"와 "E" 위치의 NaN 값이 각각 20 ÷ 18 = 1, 20 ÷ 14 = 1로 계산되어 출력된 것을 확인할 수 있습니다.