본문 바로가기
파이썬(Python), 머신러닝, 딥러닝

파이썬 누락 데이터 제거 (dropna) / dropna / python

by 굳세라(goodsarah) 2021. 11. 26.
728x90
반응형

 파이썬(Python)에서 누락 데이터를 제거하는 법에 대해서 알아보겠습니다.

 

 Array 형태의 데이터에서는 특정 부분만을 제거하면 쉽게 문제가 해결되지만, 데이터셋의 경우에는 누락데이터 부분만을 제거할 수는 없는데요 (행렬에서 특정 부분만 구멍뚫린 것 처럼 만들수는 없으니..)

 

 파이썬 누락 데이터 제거

1
2
3
4
5
6
import pandas as pd #데이터프레임 만들기 위해 pandas 모듈 import
import numpy as np #데이터 내에 NaN 값 넣기 위해서 numpy 모듈 import
 
dt=[[1,2,3,4],{5,6,7,8},[9,np.NaN,11,12],[13,14,15,16]]
data = pd.DataFrame(dt) #4x4 matrix 만들기
print(data)
cs
1
2
3
4
##누락 데이터 제거 (dropna)
#열기준 누락 데이터 제거(누락데이터가 있는 열 : 1)
c_data = data.dropna(axis=1#axis = 1 : '열' 선택
print(c_data)
cs
1
2
3
4
##누락 데이터 제거 (dropna)
#열기준 누락 데이터 제거(누락데이터가 있는 행 : 2)
r_data = data.dropna(axis=0#axis = 0 : '행' 선택
print(r_data)
cs
1
2
3
4
5
6
##누락데이터 제거 (dropna 이용)
 
#titanic data 로드
 
import seaborn as sns 
df = sns.load_dataset('titanic'#saaborn 모듈에 내장된 titanic 데이터 로드
cs

 

1
2
3
4
5
6
7
8
9
#각 변수(variables/features) 누락 데이터 개수 확인
missing_df = df.isnull()
 
for col in missing_df.columns:
  missing_count = missing_df[col].value_counts()
  try:
    print(col,':', missing_count[True])
  except:
    print(col,':',0#각 변수 별 누락데이터 개수 출력
cs

 

1
2
3
4
#누락 데이터가 있는 변수의 열 제거
 
df_thresh = df.dropna(axis=1, thresh=100)  # axis=1 : 열 기준 / thres = 100 : thresh는 역치(threshold) / 누락데이터 100개 이상이 있는 열을 제거
print(df_thresh.columns)
cs
1
2
3
4
5
6
#누락 데이터가 있는 행을 제거
 
df_age = df.dropna(subset=['age'],how='any',axis=0#'age' 변수가 있는 행을 제거
 
print(f'누락 데이터가 있는 행 제거 전, 총 행의 개수는 : {len(df)}')
print(f'age변수에 누락 데이터가 있는 행 제거 후, 총 행의 개수는 : {len(df_age)}')
cs

 

728x90
반응형

댓글