pandas 처리 데이터 부족

《Python for Data Analysis》

NA 처리 방법


메서드
설명
dropna
각 탭의 값에 데이터가 부족한지 여부에 따라 축 탭을 필터링하고 한도값을 통해 부족에 대한 용인도를 조절할 수 있습니다
fillna
지정한 값이나 삽입 방법 (예: ffill, bfill) 으로 부족한 데이터를 채웁니다.
isnull
소스 유형과 같은 부울 값 NA를 나타내는 부울 값이 포함된 객체를 반환합니다.
notnull
isnull의 부정식

누락된 데이터 필터(dropna)


Series
In [1]: import pandas as pd

In [2]: from pandas import DataFrame, Series

In [3]: import numpy as np

In [4]: from numpy import nan as NA

In [5]: data = Series([1, NA, 3.5, NA, 7])

In [6]: data.dropna()
Out[6]:
0    1.0
2    3.5
4    7.0
dtype: float64

In [7]: data[data.notnull()]
Out[7]:
0    1.0
2    3.5
4    7.0
dtype: float64

DataFrame
  • DataFrame에서dropna는 기본적으로 값이 없는 줄을 버립니다.
  • How="all"에서 모두 NA인 줄만 버립니다
  • 열을 버리려면 axis=1
  • 로 전송하면 됩니다.

    부족한 데이터 채우기(fillna)!!

  • 상수 호출df.fillna(0)
  • 사전 호출, 열마다 다른 값을 채우기df.fillna({1:0.5, 3:-1})
  • fillna는 기본적으로 새 대상을 되돌려줍니다!!,현재 위치 변경: _ = df.fillna(0, inplace=True)
  • reindex에 효과적인 삽입 방법도fillna
  • 에 사용 가능

    값 바꾸기

    fillna 방법을 이용하여 부족한 데이터를 채우는 것은 값 교체의 특수한 상황으로 볼 수 있다.replace는 이 기능을 실현하는 더욱 간단하고 유연한 방식을 제공했다.
    In [11]: data = Series([1.,-999.,2.,-999.,-1000.,3.])
    
    In [12]: data
    Out[12]:
    0       1.0
    1    -999.0
    2       2.0
    3    -999.0
    4   -1000.0
    5       3.0
    dtype: float64
    
    In [13]: data.replace(-999, np.nan)
    Out[13]:
    0       1.0
    1       NaN
    2       2.0
    3       NaN
    4   -1000.0
    5       3.0
    dtype: float64
    
    In [14]: data.replace([-999,-1000], np.nan)
    Out[14]:
    0    1.0
    1    NaN
    2    2.0
    3    NaN
    4    NaN
    5    3.0
    dtype: float64
    
    In [15]: data.replace([-999,-1000], [np.nan,0])
    Out[15]:
    0    1.0
    1    NaN
    2    2.0
    3    NaN
    4    0.0
    5    3.0
    dtype: float64
    
    In [16]: data.replace({-999 : np.nan, -1000 : 0})
    Out[16]:
    0    1.0
    1    NaN
    2    2.0
    3    NaN
    4    0.0
    5    3.0
    dtype: float64

    좋은 웹페이지 즐겨찾기