본문으로 바로가기
728x90

1. 결측치 파악

import pandas as pd
import numpy as np
df = pd.read_csv('***.csv')

# 데이터 파악
df.info()
df.describe()

# 결측치 개수
df['col_name'].isnull().sum()

# 결측치 제거
df.dropna()

# 대치
df['col_name'].fillna(0, inplace=True)

# 평균
mean = df['col_name'].mean()

# 중앙값
median = df['col_name'].median()

# 표준편차
std = df['col_name'].std()

 

2. 정규화

# Min-Max 정규화
import sklearn.preprocessing from MinMaxScaler
scaler = MinMaxScaler()
df["min_max"] = scaler.fit_transform(df[["col_name"]])

# z 정규화
import scipy.stats as ss
df["z"] = ss.zscore(df[["col_name"]])

 

3. 그룹별 통계

group = df.groupby("col_name")

 

4. 치환

target_map = { 'Yes': 1, 'No': 0}
df["col_numerical"] = df["col_categorical"].apply(lambda x: target_map[x])
df["col_numerical"].value_counts()

 

5. 타입 선택 및 정렬

cat_cols = df.select_dtypes('object', 'category').columns.values
df_cat = df[cat_cols].copy()
df_cat.nunique().sort_values(by=col, ascending=True/False)

 

6. 제거

df_cat = df_cat.drop(['col_name'], axis=1)

 

7. 상관계수

from scipy.stats import pearsonr
corr = pearsonr(a, b)[0]
728x90