Pandas 자세히 보기 11 Fillna 부족 데이터 채우기

약속:
import pandas as pd
import numpy as np
from numpy import nan as NaN

부족한 데이터 채우기


fillna ()가 가장 중요한 처리 방식입니다.
df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1
코드 결과:
0
1
2
0
1.0
2.0
3.0
1
NaN
NaN
2.0
2
NaN
NaN
NaN
3
8.0
8.0
NaN
  • 상수로 채우기:
  • df1.fillna(100)
    코드 결과:
    0
    1
    2
    0
    1.0
    2.0
    3.0
    1
    100.0
    100.0
    2.0
    2
    100.0
    100.0
    100.0
    3
    8.0
    8.0
    100.0
  • 사전을 통해 다른 상수를 채우기:
  • df1.fillna({0:10,1:20,2:30})
    코드 결과:
    0
    1
    2
    0
    1.0
    2.0
    3.0
    1
    10.0
    20.0
    2.0
    2
    10.0
    20.0
    30.0
    3
    8.0
    8.0
    30.0
  • inplace=True로 전송하여 원 대상을 직접 수정:
  • df1.fillna(0,inplace=True)
    df1
    코드 결과:
    0
    1
    2
    0
    1.0
    2.0
    3.0
    1
    0.0
    0.0
    2.0
    2
    0.0
    0.0
    0.0
    3
    8.0
    8.0
    0.0
  • method="삽입 값 바꾸기:
  • df2=pd.DataFrame(np.random.randint(0,10,(5,5)))
    df2.iloc[1:4,3]=NaN;df2.iloc[2:4,4]=NaN
    df2
    코드 결과:
    0
    1
    2
    3
    4
    0
    6
    6
    2
    4.0
    1.0
    1
    4
    7
    0
    NaN
    5.0
    2
    6
    5
    5
    NaN
    NaN
    3
    1
    9
    9
    NaN
    NaN
    4
    4
    8
    1
    5.0
    9.0
    df2.fillna(method='ffill')#        
    코드 결과:
    0
    1
    2
    3
    4
    0
    6
    6
    2
    4.0
    1.0
    1
    4
    7
    0
    4.0
    5.0
    2
    6
    5
    5
    4.0
    5.0
    3
    1
    9
    9
    4.0
    5.0
    4
    4
    8
    1
    5.0
    9.0
  • 전송 limit="충전 개수 제한:
  • df2.fillna(method='bfill',limit=2)
    코드 결과:
    0
    1
    2
    3
    4
    0
    6
    6
    2
    4.0
    1.0
    1
    4
    7
    0
    NaN
    5.0
    2
    6
    5
    5
    5.0
    9.0
    3
    1
    9
    9
    5.0
    9.0
    4
    4
    8
    1
    5.0
    9.0
  • axis="충전 방향 수정:
  • df2.fillna(method="ffill",limit=1,axis=1)
    코드 결과:
    0
    1
    2
    3
    4
    0
    6.0
    6.0
    2.0
    4.0
    1.0
    1
    4.0
    7.0
    0.0
    0.0
    5.0
    2
    6.0
    5.0
    5.0
    5.0
    NaN
    3
    1.0
    9.0
    9.0
    9.0
    NaN
    4
    4.0
    8.0
    1.0
    5.0
    9.0
    여러분의 조회에 감사드립니다. 저의 노력이 당신을 도울 수 있고, 함께 격려할 수 있기를 바랍니다.

    좋은 웹페이지 즐겨찾기