Pandas 데이터프레임에 무한대(infinity) 값이 포함되어 있는지 확인하려면 isinf() 메서드를 사용하면 됩니다. 무한대 값의 개수까지 세고 싶다면 여기에 sum()을 함께 사용하면 간단하게 처리할 수 있습니다.
필수 라이브러리 임포트
먼저 필요한 라이브러리를 별칭(alias)과 함께 가져옵니다.
import pandas as pd import numpy as np
무한대 값이 포함된 데이터 준비하기
딕셔너리 형태의 리스트를 생성하고, NumPy의 np.inf를 사용해 무한대 값을 포함시킵니다.
d = { "Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000] }위 딕셔너리로 데이터프레임을 생성합니다.
dataFrame = pd.DataFrame(d)
isinf()로 무한대 값을 검사한 뒤, .values.sum()으로 개수를 구합니다.
count = np.isinf(dataFrame).values.sum()
전체 예제 코드
다음은 위 과정을 모두 합친 전체 코드입니다.
import pandas as pd
import numpy as np
# 리스트로 이루어진 딕셔너리 생성
d = { "Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000] }
# 딕셔너리로부터 데이터프레임 생성
dataFrame = pd.DataFrame(d)
print("DataFrame...\n", dataFrame)
# 무한대 값 검사 및 개수 출력
count = np.isinf(dataFrame).values.sum()
print("\nInfinity values...\n", count)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame...
Reg_Price
0 7000.505700
1 inf
2 5000.000000
3 inf
4 9000.757680
5 6000.000000
Infinity values...
2결과를 보면 'Reg_Price' 열에 inf 값이 2개 존재하며, np.isinf()와 sum()의 조합으로 정확히 그 개수인 2가 반환된 것을 확인할 수 있습니다. 이 방법은 결측치(NaN) 검사와 마찬가지로 데이터 정제 단계에서 비정상적인 수치값을 걸러낼 때 매우 유용하게 활용됩니다.