# 결측치 개수
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
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…