ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [파이썬] DataFrame에서 누락값 처리하기
    Pandas 2021. 1. 15. 19:24
    반응형

    데이터를 처리하다 보면 비어있는 데이터가 있는 경우가 많습니다.

     

    예를 들면

    df = pd.DataFrame({'Name': ['Choi', 'Kim', 'Lee', "Park"], 'Age': [25, 11, np.nan, 30]})
    df

    이런 경우가 됩니다. 예시에서는 데이터가 적기 때문에 직접 행과 열을 지목해서 대입해줄 수도 있겠지만 실제 데이터는 양이 어마어마하기 때문에 일일이 바꿔주기란 사실상 불가능합니다. 이러한 누락 값을 처리하기 위해 도움이 되는 메서드들을 알아보겠습니다.


    1. 누락값 개수 체크

    일단 데이터에 누락값이 어느 열에 존재하는지, 얼마나 존재하는지 확인해보겠습니다.

    1-1. count()

    Pandas의 count() 메서드는 각 열에 대해 NaN값이 아닌 것들의 합이 리턴됩니다.

    df.count()
    
    # Name    4
    # Age     3
    # dtype: int64
    
    len(df)
    
    # 4

    열의 이름과 NaN값이 아닌 것의 개수가 출력이 됩니다. 행의 개수를 알기 위해선 len()이나 shape을 활용하면 알 수 있으니 그 값에서 빼면 되겠죠?

     

    1-2. isnull()과 sum()

    isnull()은 각 데이터가 NaN값인지를 리턴해주고 sum() NaN인 경우 0, 아닌 경우 1로 처리해 그 합을 리턴해줍니다.

    df.isnull()
    
    # 	Name	Age
    # 0	False	False
    # 1	False	False
    # 2	False	True
    # 3	False	False

     

    df.isnull().sum()
    
    # Name    0
    # Age     1
    # dtype: int64

    누락 값의 개수를 그대로 출력해주니 더 편한 것 같습니다.

     


    2. 누락값 채우기

    - fillna()

    데이터를 머신러닝 모델에 넣거나 하기 위해서는 NaN값이면 안되기 때문에 임의로 값을 넣어주게 됩니다. 0을 넣기도 하고 평균과 같은 수치를 넣기도 하죠. 나이의 평균을 넣어보도록 하겠습니다.

     

    df['Age'] = df['Age'].fillna(df['Age'].mean())
    df

    평균값이 잘 들어간 걸 확인할 수 있네요

    반응형

    댓글

Designed by Tistory.