본문 바로가기
파이썬 (Python)/Pandas

Python Panda NaN 값 처리 및 확인 하는 방법

by ★√★ 2021. 6. 2.

안녕하세요 이번 포스팅은 Python의 Pandas 패키지를 이용한 DataFrame 함수를 활용하는 방법 중에 nan 값 처리하는 방법에 대해서 설명드리도록 하겠습니다. NaN 값은 NA 값으로 아무 의미 없는 값이라고 이해하시면 됩니다. 

 

NaN값-조회-처리

 

코드 구현을 위한 Source Data DataFrame 화 하기

 

: 일단 DataFrame을 구현하기 위한 Source Data를 구현해보도록 하겠습니다. 이전 포스팅에서 설명드린 것처럼 DataFrame을 구현하기 위해서는 Dictionary로 구현되어 있는 Data Source가 필요합니다. 아래와 같이 예시 Data를 구현해보도록 하겠습니다. (참고로 이 부분은 이전 포스팅에서 똑같은 Source Data를 사용하고 있다는 걸 참조해주세요.)

 

# 필요한 패키지를 먼저 선언을 합니다.
import pandas as pd
import numpy as np

# 예시 Source Data를 구현하여, pandas를 이용하여 DataFrame화 시키는 코드입니다.
data = {"names": ["Kim", "Park", "Jang", "Kim", "MC-Yoo"],
"NumberofYear" : [2014, 2015, 2017, 2018, 2019],
"Value": [90, 86, 77, 99, 75]}
df = pd.DataFrame(data, columns=["names", "NumberofYear", "Value", "remarks"],
index=["first_row", "second_row", "third_row", "forth_row", "fifth_row"])

▼ 위의 Data는 예시로 한 것이고, Source Data는 원하시는 내용으로 다시 수정해서 구현하셔도 됩니다.

 

 

NaN 값 처리 및 확인하는 방법

 

: NaN 값에 대해서 처리하는 여러가지 방법을 알려드리도록 하겠습니다. 기 포스팅을 보시면 NaN이 있으면 누락시키거나 전체적으로 NaN 값이 있을 경우에 누락시키는 코드를 구현하였습니다. 이전 포스팅을 안 보고 오신 분이라면 아래 와 같이 첨부 해드리오니 먼저 보고 오시면 다음 코드 구현 설명을 이해하는데 쉬우실 겁니다. 

 

Python Panda Index를 날짜 간격으로 선언, nan 값 Sort 하는 방법

안녕하세요 이번 포스팅은 Python의 Pandas 패키지를 이용한 DataFrame 함수를 활용하는 방법 중에 Index를 날짜 간격으로 선언, nan 값 Sort 하는 방법까지 설명드리도록 하겠습니다. 코드 구현을 위한 Sou

davey.tistory.com

 

▼ 제가 NaN 데이터를 다루는 방법으로는 2가지를 알려드리도록 하겠습니다. 그리고 NaN 속성을 가지고 있는 있는 행만 출력하는 코드까지 구현하도록 하겠습니다.

 

 NaN 데이터 다루는 방법으로는 NaN 속성값을 모두 특정 속성 값으로 수정하는 코드와, NaN 속성값이 있는지에 대한 확인 코드입니다. 위에서 선언한 예제 데이터에 NaN 값을 일부러 집어넣는 코드까지 같이 구현한 코드는 아래와 같습니다.

 

# NaN의 값을 일부러 입력하는 코드
df.columns = ['Column1', 'Column2', 'Column3', 'Column4']
df['Column5'] = [5.0, np.nan, 5.5, 6.5, 10.0, np.nan]

# NaN 속성값을 모두 특정 속성 값 ("1")으로 수정하는 코드
print(df.fillna(value= 1))

# NaN 속성값이 있는지 없는지 확인 하는 코드
print(df.isnull())

# 특정 Column에 대해서 NaN 속성값을 가지고 있는 행만 출력
print(df.loc[df.isnull()['Column5'],:])

 

▼  위 코드를 실행을 시켜 보면 아래와 같은 결과 값을 보실 수 있습니다. 즉 NaN 값은 1 로 대체가 되었고, 기존에 df 의 DataFrame의 기존 값은 변경이 되지 않았으니까 다시 NaN 값이 있는지 확인을 하면 Column5에 2개의 NaN 값이 존재하는 것을 확인하실 수 있습니다. 

 

    Column1   Column2   Column3   Column4  Column5
0  0.217307  0.224595 -1.426344 -0.188636      5.0
1  0.252660  0.357649  0.818600  0.185542      1.0
2  0.369813  0.346252 -0.575500 -0.200570      5.5
3  0.482327  0.255609 -2.124561 -0.685752      6.5
4 -0.227130 -0.384009 -0.483895 -0.571355     10.0
5 -1.551786 -0.657441 -0.266153  0.251536      1.0
  
    Column1  Column2  Column3  Column4  Column5
0    False    False    False    False    False
1    False    False    False    False     True
2    False    False    False    False    False
3    False    False    False    False    False
4    False    False    False    False    False
5    False    False    False    False     True

 

▼  그리고 마지막으로 특정 Column에 대해서 NaN속성값을 가지고 있는 행을 출력하는 코드를 구현한 값은 아래와 같습니다. 즉 2개의 행 Index 1, 5 행 Column5에 있는 NaN 값을 찾아 출력하는 걸 확인 하실 수 있습니다. 

    Column1   Column2   Column3   Column4  Column5
1  0.252660  0.357649  0.818600  0.185542      NaN
5 -1.551786 -0.657441 -0.266153  0.251536      NaN

 

 이상입니다. 지금까지 Python의 Pandas 패키지를 이용한 DataFrame 함수를 활용하는 방법 중에 nan 값 처리하는 방법에 대해서 포스팅을 작성하였습니다. 코드를 이해하시고 나서 실제로 파이참에서 실행을 해보시는 걸 추천드립니다. 그럼 최고의 프로그래머가 되는 데 조금이나 도움이 되었으면 좋겠습니다. 이만 마무리하도록 하겠습니다. 감사합니다.

 

[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁드립니다. 검토 후 수정 및 삭제 조치하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을 때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.] 

 

 

관련 다른 글

728x90

댓글