SAS에서 분석했던 보스턴 집값 분석을 Python에서도 동일하게 해봅시다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
read_csv를 이용하여 Train/Test 데이터를 불러옵니다.
train_df = pd.read_csv('train.csv')
test_df = pd.read_csv('test.csv')
SAS에서도 제외했던 변수들을 제거합니다. Python에서는 drop문을 사용하여 제외합니다.
train_df.drop(['Street','Alley','Utilities','Condition2','RoofMatl','BsmtFinType2',
'BsmtFinSF2','Heating','LowQualFinSF','WoodDeckSF','OpenPorchSF',
'PoolArea','PoolQC','MiscFeature','MiscVal','MoSold','YrSold'], axis = 'columns', inplace=True)
test_df.drop(['Street','Alley','Utilities','Condition2','RoofMatl','BsmtFinType2',
'BsmtFinSF2','Heating','LowQualFinSF','WoodDeckSF','OpenPorchSF',
'PoolArea','PoolQC','MiscFeature','MiscVal','MoSold','YrSold'], axis = 'columns', inplace=True)
SAS와는 다르게 Python에서는 범주형 변수를 더미화 시켜야합니다. 여러 방법이 있지만 여기서는 get_dummies를 활용하여 더미화를 합니다. 더미화를 시킨 변수를 남기고 원래 변수는 제거합니다.
#Train 데이터 범주형 변수 더미화
dummy_list = list(train_df.select_dtypes(include =['object']).columns)
dummies = pd.get_dummies(train_df[dummy_list], prefix = dummy_list)
train_df.drop(dummy_list, axis = 1, inplace = True)
X = pd.concat([train_df, dummies], axis = 1)
#Test 데이터 데이터 범주형 변수 더미화
dummy_list = list(test_df.select_dtypes(include =['object']).columns)
dummies = pd.get_dummies(test_df[dummy_list], prefix = dummy_list)
test_df.drop(dummy_list, axis = 1, inplace = True)
Y = pd.concat([test_df, dummies], axis = 1)
데이터에 있는 Missing값도 처리해봅시다. 먼저 Missing값이 있는 변수를 확인해봅시다.
#Train 데이터 Missing 값 처리
cols=list(train_df)
for col in list(train_df):
if (train_df[col].isnull().sum())==0:
cols.remove(col)
else:
pass
print(len(cols))
#3개
#Test 데이터 Missing 값 처리
cols=list(test_df)
for col in list(test_df):
if (test_df[col].isnull().sum())==0:
cols.remove(col)
else:
pass
print(len(cols))
#7개