본문 바로가기
Python/Pandas

Pandas NullPointerException: Attempting to access None 오류 해결하기

by PySun 2025. 5. 28.
반응형

소개

Pandas를 사용하다 보면 'NullPointerException: Attempting to access None'라는 오류에 부딪히는 경우가 종종 발생합니다. 이 오류는 주로 None 값에 접근하려고 시도할 때 발생합니다. 특히 DataFrame이나 Series에서 특정 열이나 행에 접근 할 때, 값이 None 일 경우 매우 혼란스러울 수 있습니다. 이 글에서는 이 오류의 원인과 해결 방법을 자세히 알아보겠습니다.

에러 발생 예시 코드

먼저, 'NullPointerException: Attempting to access None' 오류가 발생할 만한 간단한 예시 코드를 살펴보겠습니다.

import pandas as pd

# 간단한 데이터프레임 생성
data = {'A': [1, 2, None], 'B': [4, None, 6]}
df = pd.DataFrame(data)

# None 값을 가진 셀에 접근 시도
missing_value = df.loc[1, 'B'] + 10  # 에러 발생
print(missing_value)

에러 해결 방법

1. None 값 체크하기

None 값을 접근하기 전에, 해당 값이 None인지 체크하는 것이 좋습니다. 다음과 같이 조건문을 사용할 수 있습니다.

import pandas as pd

# 간단한 데이터프레임 생성
data = {'A': [1, 2, None], 'B': [4, None, 6]}
df = pd.DataFrame(data)

# None 값을 가진 셀에 접근 시도
value = df.loc[1, 'B']

# None 값 체크
if value is not None:
    adjusted_value = value + 10
    print(adjusted_value)
else:
    print("해당 값은 None 입니다.")

2. fillna()를 사용하여 None 값 대체하기

또 다른 방법은 Pandas의 `fillna()` 메서드를 사용하여 None 값을 대체하는 것입니다. 이를 통해 코드가 실행되는 동안 None 때문에 중단되지 않도록 할 수 있습니다.

import pandas as pd

# 간단한 데이터프레임 생성
data = {'A': [1, 2, None], 'B': [4, None, 6]}
df = pd.DataFrame(data)

# None 값을 0으로 대체
df.fillna(0, inplace=True)

# None 값을 가진 셀에 접근 시도
adjusted_value = df.loc[1, 'B'] + 10
print(adjusted_value)  # 출력: 10

마무리

이 글에서는 Pandas에서 발생하는 'NullPointerException: Attempting to access None' 오류에 대한 해결 방법을 살펴보았습니다. None 값 체크를 통해 오류를 예방하고, `fillna()` 메서드를 사용하여 데이터의 유효성을 높일 수 있습니다. Pandas를 사용할 때는 데이터프레임의 상태를 확인하고, 필요한 경우 적절한 대체 수단을 사용하는 것이 중요합니다. 문제가 발생할 경우 항상 코드를 다시 검토하고, 예외 상황을 고려하는 것이 필수적입니다!

반응형