SAS에서 분석했던 보스턴 집값 분석을 Python에서도 동일하게 해봅시다.

1. 데이터 준비

1) 필요 패키지 불러오기

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

2) 데이터 불러오기

read_csv를 이용하여 Train/Test 데이터를 불러옵니다.

train_df = pd.read_csv('train.csv')
test_df = pd.read_csv('test.csv')

3) 불필요한 데이터 제거

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)

4) 범주형 변수 더미화

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)

5) Missing 값 처리

데이터에 있는 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개