# 결측치 개수
df.isnull().sum() # 결측치 개수 (전체)
df.isnull().sum().sum() df.dropna() # df.dropna(axis=0) df.dropna(axis=1) df.dropna(axis=1, how='all') # 컬럼의 모든 값이 NaN 경우만 df.median() # 결측치를 median으로 대체
df.fillna(df.median()) df = pd.DataFrame({'data': np.random.normal(size=500)})
df.head() # Outlier 탐지
outlier_conds = np.abs(df['data'] - df['data'].mean()) > (3*df['data'].std())
print('row count', len(df[outlier_conds])) df['data'].quantile([0.25, 0.75]) q1, q3 = df['data'].quantile([0.25, 0.75])
IQR = q3 - q1
lower_bound = q1 - (IQR * 1.5)
upper_bound = q3 + (IQR * 1.5)
out_conds = (df['data'] < lower_bound) | (upper_bound < df['data'])
df[out_conds] 데이터 평활화
data = np.random.randint(1, 10, 7)
data pd.cut(data, 3) pd.cut(data, 3, labels=['별로', '보통', '좋음']) 우측 그림 설명 : 원본데이터를 0~1까지의 크기로 맞춘것이 정규화, 0기준으로 값을 맞추면 표준화라고 요약 가능
데이터에 선형 변환을 적용 자료의 분포를 균일하게 만드는 과정
import numpy as np
from sklearn.preprocessing import scale, robust_scale, minmax_scale, maxabs_scale
df = pd.DataFrame({'x':np.arange(-3, 9, dtype=float) })
df.iloc[-1] = 50 # outlier
df['scale(x)'] = scale(df[['x']])
df['robust_scale(x)'] = robust_scale(df[['x']])
df['minmax_scale(x)'] = minmax_scale(df[['x']])
df['maxabs_scale(x)'] = maxabs_scale(df[['x']])
df df.describe() df.median() # robust_scale(x) == 0 출처 : https://financedata.notion.site/e3f7ea28d66e40638e33307ecc6a3dd0
요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…