728x90
반응형
SMALL
범주형 데이터 처리
원핫 인코딩 ➢ 범주형 데이터의 개수만큼 변수를 생성하여 해당 여부를 0 또는 1로 표현 |
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
'Data-driven Methodology > DS (Data Science)' 카테고리의 다른 글
[Data Science] 의사결정 트리 (Decision Tree) (1) (0) | 2022.09.27 |
---|---|
[Data Science] 이상치 처리 (0) | 2022.09.26 |
[Data Science] 결측치 처리 (1) (0) | 2022.09.24 |
[Data Science] 데이터 시각화 (4) (0) | 2022.09.22 |
[Data Science] 데이터 시각화 (3) (0) | 2022.09.22 |