Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Pandas DataFrame에서 무한 값(inf)에 True 표시하는 방법

Pandas DataFrame에서 무한 값(∞)이 있는 위치를 확인하려면 isin() 메서드를 활용하면 됩니다. 이 메서드를 사용하면 무한 값에는 True를, 일반 값에는 False를 표시할 수 있어 데이터 검증과 전처리 작업에 매우 유용합니다.

1. 필수 라이브러리 가져오기

먼저 pandas와 numpy를 각각의 별칭(alias)으로 가져옵니다.

import pandas as pd
import numpy as np

2. 무한 값이 포함된 데이터 준비

리스트로 구성된 딕셔너리를 생성합니다. 무한 값은 NumPy의 np.inf를 사용해 설정했습니다.

d = { "Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000, 900, np.inf] }

3. DataFrame 생성

위에서 만든 딕셔너리를 기반으로 DataFrame을 생성합니다.

dataFrame = pd.DataFrame(d)

4. 무한 값에 True 표시하기

isin() 메서드에 np.inf-np.inf를 함께 전달하면, 양의 무한대와 음의 무한대 모두 True로 표시됩니다.

res = dataFrame.isin([np.inf, -np.inf])

전체 예제 코드

지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.

import pandas as pd
import numpy as np

# 리스트로 구성된 딕셔너리
d = { "Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000, 900, np.inf] }

# 위 딕셔너리로 DataFrame 생성
dataFrame = pd.DataFrame(d)
print("DataFrame...\n", dataFrame)

# 무한 값 개수 확인
count = np.isinf(dataFrame).values.sum()
print("\nInfinity values count...\n ", count)

# 무한 값에 TRUE 표시
res = dataFrame.isin([np.inf, -np.inf])
print("\nUpdated DataFrame...\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame...
      Reg_Price
0  7000.505700
1          inf
2  5000.000000
3          inf
4  9000.757680
5  6000.000000
6   900.000000
7          inf

Infinity values count...
    3

Updated DataFrame...
    Reg_Price
0      False
1       True
2      False
3       True
4      False
5      False
6      False
7       True

정리

isin([np.inf, -np.inf])를 사용하면 DataFrame 내 무한 값의 위치를 Boolean(True/False) 형태로 손쉽게 파악할 수 있습니다. 또한 np.isinf()values.sum()을 조합하면 데이터에 포함된 무한 값의 총 개수도 확인할 수 있습니다. 실제 데이터 분석에서는 무한 값이 계산 오류나 비정상적인 입력으로 인해 발생하는 경우가 많으므로, 이러한 방법으로 먼저 값을 식별한 뒤 replace()dropna() 등을 활용해 적절히 처리하는 것이 좋습니다.