팬더 DataFrame의 열에서 모든 NaN 값을 0으로 바꾸는 방법

  1. 모든 NaN 값을 0으로 바꾸는 df.fillna() 메소드
  2. df.replace()메소드

큰 데이터 세트로 작업 할 때 데이터 세트에 NaN값이 있는데,이 값을 평균 값이나 적절한 값으로 바꾸려고합니다. 예를 들어, 학생의 채점 목록이 있고 일부 학생은 퀴즈를 시도하지 않아 시스템이 0.0 대신 NaN으로 자동 입력되었습니다. 이 작업을 수행하는 다른 방법은 다음과 같습니다.

  1. df.fillna()
  2. df.replace()

다음 섹션에서 같은DataFrame을 다음과 같이 사용할 것입니다.

import pandas as pd
import numpy as np
data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
        'percentage': [90, 99, 50, 65],
        'grade': [88, np.nan, 95,np.nan]}
df = pd.DataFrame(data)
print(df)

다음은 NaN등급의 데이터 프레임입니다.

     name  percentage  grade
0  Oliver          90   88.0
1   Harry          99    NaN
2  George          50   95.0
3    Noah          65    NaN

모든 NaN 값을 0으로 바꾸는 df.fillna() 메소드

NaN 값을df.fillna()메소드의 도움으로 대체하자.

import pandas as pd
import numpy as np
data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
        'percentage': [90, 99, 50, 65],
        'grade': [88, np.nan, 95,np.nan]}
df = pd.DataFrame(data)
df = df.fillna(0)
print(df)

다음은NaN이 0으로 대체 된 출력입니다.

     name  percentage  grade
0  Oliver          90   88.0
1   Harry          99    0.0
2  George          50   95.0
3    Noah          65    0.0

df.fillna()메소드는 NaN값을 주어진 값으로 채 웁니다. inplace 매개 변수가True로 설정되어 있지 않으면 객체 데이터는 변경되지 않지만 기본적으로 새 데이터 프레임을 반환합니다.

inplace 매개 변수를True로 설정하여 위의 코드를 다시 작성할 수 있습니다.

import pandas as pd
import numpy as np
data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
        'percentage': [90, 99, 50, 65],
        'grade': [88, np.nan, 95,np.nan]}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)

df.replace()메소드

이 메소드는NaN을 0으로 대체하기 위해df.fillna()와 동일하게 작동합니다.df.replace()는 다른 숫자를 대체하는데 사용될 수도 있습니다. 코드를 살펴 보자.

    import pandas as pd
    import numpy as np
    data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
            'percentage': [90, 99, 50, 65],
            'grade': [88, np.nan, 95,np.nan]}
    df = pd.DataFrame(data)
    nan_replaced = df.replace(np.nan,0)
    print(nan_replaced)

출력은 다음과 같습니다.

     name  percentage  grade
0  Oliver          90   88.0
1   Harry          99    0.0
2  George          50   95.0
3    Noah          65    0.0

관련 문장 - Pandas NaN

  • Pandas DataFrame에서 NaN이 있는지 확인하는 방법