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
반응형
'파이썬(Python), 머신러닝, 딥러닝' 카테고리의 다른 글
딥러닝 기초 - (1) 선형 회귀(Linear regression) 개념 (0) | 2022.06.21 |
---|---|
딥러닝을 위해 필요한 3가지 (0) | 2022.06.11 |
딥러닝(Deep learning)이란? 딥러닝 vs 머신러닝 vs 인공지능(AI) (0) | 2022.06.11 |
머신러닝이란? / 머신러닝 / 머신러닝 기법 (0) | 2021.11.19 |
(파이썬 기초) 변수와 데이터 종류(Variable & Data Type) (0) | 2021.11.18 |
댓글