python

[python] 데이터 분석할때 필요한 코드 / 함수 정리

독립성이 강한 ISFP 2022. 2. 20. 03:04
728x90
반응형
from IPython.core.interactiveshell import InteractiveShell # 값을 연속적으로 출력해줌
InteractiveShell.ast_node_interactivity = 'all'

import warnings # 버전 차이로 인해 출력되는 에러 문구를 무시
warnings.filterwarnings("ignore")

from IPython.display import set_matplotlib_formats # 시각화 그래프 내의 글자를 선명하게 해줌
set_matplotlib_formats("retina")

pd.options.display.max_rows=100 # 데이터프레임의 행과 열을 몇 개까지 출력해서 확인 할 것인지
pd.options.display.max_columns=100

plt.rc("font", family="Malgun Gothic") # 그래프 시각화 한글 폰트
plt.rc("axes", unicode_minus=False) # 그래프에 마이너스를 표기

from matplotlib import font_manager, rc # matplotlib 한글 깨짐 방지
font_path = "C:/Windows/Fonts/NGULIM.TTF"
font = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font)
##### csv 파일 read_csv #####

import pandas as pd
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
submission = pd.read_csv('sample_submission.csv')

##### train_test_split #####

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 11)

##### OneHotEncoder #####

# sparse=False는 희소 행렬(sparse matrix)이 아닌 일반적인 배열(array) 형태로 변환된 결과를 반환하도록 지정
# handle_unknown='ignore'는 알 수 없는 카테고리가 들어왔을 때 에러를 발생시키지 않고 무시하도록 지정.  즉, 변환 시 학습 데이터에 없던 새로운 카테고리 값이 들어오는 경우, 해당 카테고리는 모두 0으로 처리

from sklearn.preprocessing import OneHotEncoder

ohe = OneHotEncoder(sparse=False, handle_unknown = 'ignore')
onehot_train = ohe.fit_transform(train_result[['Bid_class']])
onehot_frame = pd.DataFrame(onehot_train, columns = ohe.categories_[0])
train_result = pd.concat([train_result, onehot_frame], axis = 1)
train_result = train_result.drop(['Bid_class', '일괄'], axis = 1)

##### LabelEncoding #####

from sklearn.preprocessing import LabelEncoder
import numpy as np

label_col = ['Auction_class', 'addr_do', 'addr_san', 'Share_auction_YorN', 'Auction_results_left', 'Apartment_usage']

for col in label_col:
    le = LabelEncoder()
    train_result[col] = le.fit_transform(train_result[col])
    
    for label in np.unique(test_result[col]): 
        if label not in le.classes_: 
            le.classes_ = np.append(le.classes_, label)
    test_result[col] = le.transform(test_result[col])
    
##### Scaling ##### 

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
train = scaler.fit_transform(train)
test= scaler.transform(test)
728x90
반응형