In [1]:
from IPython.core.display import display, HTML
display(HTML("<style> .container{width:90% !important;}</style>"))
Handling Missing Data¶
In [2]:
import pandas as pd
import numpy as np
In [3]:
# 임의의 데이터프레임 생성
df = pd.DataFrame( [ [np.nan, 2, np.nan, 0],
[3, 4, np.nan, 1],
[np.nan, np.nan, np.nan, 5] ],
columns = list('ABCD') )
df
Out[3]:
dropna(axis = ?, how = ?, inplace = ?) : 결측치 버리기
- axis = 0 (default) : 행 버리기 ⟷ axis = 1 : 컬럼 버리기
- how = 'any' (default) : 행 또는 열의 NaN이 하나라도 있을 때 버리기 ⟷ how = 'all' : 전체 행 또는 열의 값이 NaN일 때 버리기
- inplace = False (default) : drop한 결과 조회만 하기 ⟷ inplace = True : drop한 결과 데이터프레임에 바로 저장
In [4]:
# 전부다 Null인 컬럼 drop
df.dropna(axis=1, how= 'all')
Out[4]:
In [5]:
# 하나라도 Null이 있는 컬럼 drop
df.dropna(axis=1, how= 'any')
Out[5]:
In [6]:
# 전부다 Null인 열 drop
df.dropna(axis=0, how='all')
Out[6]:
In [7]:
# 하나라도 Null이 있는 열 drop
df.dropna(axis=0, how='any')
Out[7]:
df.fillna : NaN 을 지정해준 값으로 채워줌
In [8]:
# 결측치 0으로 채우기
df.fillna(0)
Out[8]:
In [9]:
# 딕셔너리를 사용해서 컬럼별로 지정값으로 채우기
values = { 'A' : 0, 'B': 1, 'C': 2, 'D': 3}
df.fillna(value=values)
Out[9]:
In [10]:
# 결측치를 중앙값으로 채우기
fill_na_value = df['D'].median()
df.fillna(fill_na_value)
Out[10]:
In [11]:
# 컬럼별로 결측치 데이터 갯수 확인
df.isnull().sum()
Out[11]:
In [12]:
# 컬럼별로 결측치가 아닌 데이터 갯수 확인
df.notnull().sum()
Out[12]:
'Python > Pandas Cheat Sheet' 카테고리의 다른 글
4. Summarize Data(자료 요약하기) (0) | 2019.10.16 |
---|---|
3. Subset Observations(Columns) (열 데이터 다루기) (0) | 2019.10.09 |
2. Subset Observations(Rows) (행 데이터 다루기) (0) | 2019.10.09 |
1. Creating DataFrame(데이터프레임 만들기) (0) | 2019.10.09 |