# df_train데이터 'Embarked'의 결측치 확인
df_train['Embarked'].isnull().sum()
2개가 나온다.
df_train['Embarked'].fillna(df_train['Embarked'].mode,inplace = True)
'Embarked'의 최빈값으로 넣어준다. 최빈값은 'S'
# df_train에 Age_cat이라는 열을 만들어서 나이대별로 나눠주기
df_train['Age_cat']=0
=> 0값을 넣은 데이터프레임을 만든 것.
df_train.loc[df_train['Age'] < 10,'Age_cat'] = 0
df_train.loc[(10 <= df_train['Age'])&(df_train['Age']<20),'Age_cat']=1
df_train.loc[(20 <= df_train['Age'])&(df_train['Age']<30),'Age_cat']=2
df_train.loc[(30 <= df_train['Age'])&(df_train['Age']<40),'Age_cat']=3
df_train.loc[(40 <= df_train['Age'])&(df_train['Age']<50),'Age_cat']=4
df_train.loc[(50 <= df_train['Age'])&(df_train['Age']<60),'Age_cat']=5
df_train.loc[(60 <= df_train['Age'])&(df_train['Age']<70),'Age_cat']=6
df_train.loc[(70 <= df_train['Age']),'Age_cat']=7
위 방법은 너무 반복적이고 길므로 함수를 만들어 적용시킬 수도 있다.
def category_age(x):
if x < 10:
return 0
elif x < 20:
return 1
elif x < 30:
return 2
elif x < 40:
return 3
elif x < 50:
return 4
elif x < 60:
return 5
elif x < 70:
return 6
else:
return 7
df_train['Age_cat_2'] = df_train['Age'].apply(category_age)
🔍 any()와 all()
any(), all() 둘다 boolean(True or False) 값을 return 해주는 pandas의 내장함수이다.
데이터분석을 하다보면, 특정 값을 가진 행이 있는지 판별해야하는 경우가 있다.
그 특정값이 몇개가 있는지가 아니라 단순히 1개라도 있는지, 아니면 전체 행이 그 값을 가졌는지 여부를 판단해줄 때
any() 혹은 all()을 써줄 수 있다.
(df_train['Age_cat']==df_train['Age_cat_2']).all()
all()의 경우 => 모두 True일 경우 True, 한개라도 False가 있을경우 False
any()의 경우 => 한개라도 True가 있는 경우 True, True가 하나도 없을 경우 False
'Study > kaggle' 카테고리의 다른 글
캐글 타이타닉 Titanic - 9. Feature engineering - Fill Null in Age (0) | 2023.03.16 |
---|---|
캐글 타이타닉 Titanic - 8. EDA - Fare, Cabin, Ticket (0) | 2023.03.14 |
캐글 타이타닉 Titanic - 7. EDA - FamilySize (0) | 2023.03.12 |
캐글 타이타닉 Titanic - 6. EDA - Embarked (0) | 2023.03.11 |
캐글 타이타닉 Titanic - 5. Age, Sex, Pclass (violinplot) (0) | 2023.03.11 |