import numpy as np
import pandas as pd
df.drop(columns=['열1', '열2'])
inplace
: 원본 대체. default False
axis
: 0: row, 1: column
columns
: str, 혹은 list 안에 str들을 넣기. 이러면 axis=1 로 한것과 같음. ex. ['열1', '열2']
df['열1'] = df['열1'].replace("_", np.NaN)
df = df.astype({'열1': float})
df['열1'] = df['열1'].astype(float)
df.isna().sum()
df.isnull().sum()
df = df.dropna()
axis
: 0: row, 1: column. default 0
how
: all: 모든 항목이 NA인 row만 제거
thresh
: 임계치. 그보다 많은 개수의 NA가 존재하는 row를 삭제
subset
: 특정 column에 있는 NA만 참고하여 제거. list안에 str로 column명 넣음.
df = df.fillna(method='backfill')
method
: ffill: 앞의 값으로 채움, backfill: 뒤의 값으로 채움. 첫 또는 마지막 record가 결측치인 경우 주의해야함
df = df.fillna(10)
df['열1'] = df['열1'].replace(np.nan, df['열1'].median())
df["열1"] = df["열1"].fillna(df["열1"].median())
## 모든 수치형 컬럼 결측치를 각 컬럼의 중앙값으로 채우기
df = df.fillna(df.median(numeric_only=True)) # numeric_only=True: 숫자, 소수, 부울값만 있는 열에대해서만 연산을 수행
# Q1, Q3 구하기
q1 = df['열1'].quantile(0.25)
q3 = df['열1'].quantile(0.75)
# IQR = 1.5 * (Q3 - Q1)
iqr = 1.5 * (q3 - q1)
age_min = q1 - iqr
age_max = q3 + iqr
# 이상치 제거하기
df_data=df[(df['age_itg_cd'] < age_max) & (df['age_itg_cd'] > age_min)] # 이상치가 아닌 애들만 변수에 저장
# 이상치를 변경
df[(df['열1'] > age_max)]= age_max
df[(df['열1'] < age_min)]= age_min
df = df[df['열1']!='AAA', ]
df_col_mode1 = df['열1'].value_counts().index[0]
df_col_mode1 = df['열1'].mode().values[0]
df['열1']=df['열1'].replace('AAA', df_col_mode1) # 최빈치로 변경한다면
df['by_age']=df['age']//10*10 # 100나눈 몫. 즉 연령대(10씩 기준)만 뽑겠다
df=df.astype({'age': int, 'by_age':int})
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['열1'] = le.fit_transform(df['열1'])
df = pd.get_dummies(df, columns=['열1', '열2', '열3'], drop_first=True)
target = '열 y'
x = df.drop(columns=[target])
y = df[target]
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, stratify=y, random_state=42)
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
x_train_s = scaler.fit_transform(x_train)
x_test_s = scaler.transform(x_test)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
x_train_s = scaler.fit_transform(x_train)
x_test_s = scaler.transform(x_test)