본문 바로가기
Data-driven Methodology/DS (Data Science)

[Data Science] 결측치 처리 (2)

by goatlab 2022. 9. 26.
728x90
반응형
SMALL

범주형 데이터 처리

 

원핫 인코딩
➢ 범주형 데이터의 개수만큼 변수를 생성하여 해당 여부를 0 또는 1로 표현

Medical_dataset.csv
0.02MB

df = pd.read_csv('Medical_dataset.csv')
df.head()

print(df.dtypes)
age         float64
sex          object
bmi         float64
smoker       object
region       object
children      int64
charges     float64
dtype: object
df_all_columns = pd.get_dummies(df)
df_all_columns.head()

# 특정 특징만 변경
gender = pd.get_dummies(df[['sex']])
gender.head()

bins = [0,10,20,30,40,50,60,70,80,90,101]
group_name = ['0 - 9','10-19','20-29','30-39','40-49','50-59','60-69','70-79','80-89','90-100']
age_group = pd.cut(df['age'],bins,labels=group_name)

print(age_group)
0       20-29
1       30-39
2       10-19
3       30-39
4       50-59
        ...  
3625    40-49
3626    30-39
3627    50-59
3628    40-49
3629    30-39
Name: age, Length: 3630, dtype: category
Categories (10, object): ['0 - 9' < '10-19' < '20-29' < '30-39' ... '60-69' < '70-79' < '80-89' < '90-100']
df_age_group = pd.concat([df_all_columns, age_group],axis=1)
df_age_group = pd.get_dummies(df_age_group)
df_age_group.drop('age',axis=1,inplace=True)
df_age_group.head()

 

데이터 스케일링 (Scaling)

 

MinMaxScaling 최소값-최대값 정규화라고 한다. 최소값과 최대값을 이용하여 0~1 사이로 범주화한다.
StandardScaling z-score 정규화라고도 한다. 기존 값을 정규분표를 이용하여 변환한다.
# MinMaxScaling
df = pd.read_csv('Diabetes_Database.csv')

for key in ["Glucose","BloodPressure","SkinThickness","Insulin","BMI"]:
    df.loc[df[key]==0, key]=None

df.head()

keys = df.keys()
keys = keys.drop('Outcome')

for key in keys:
    df[key]=(df[key]-min(df[key]))/(max(df[key]-min(df[key])))

df.head()

# StadardScaling
for key in ["Glucose","BloodPressure","SkinThickness","Insulin","BMI"]:
    df.loc[df[key]==0, key]=None

df.head()

keys = df.keys()
keys = keys.drop('Outcome')

for key in keys:
    df[key]=(df[key]-df[key].mean())/(df[key].std())

df.head()

728x90
반응형
LIST