Study/kaggle

캐글 타이타닉 Titanic - 9. Feature engineering - Fill Null in Age

Do잇 2023. 3. 16. 01:08

 

 

df_train.Name은 df_train['Name']과 동일한 결과가 나온다.

Dooley, Mr. Patrick이 있으면 Mr만 빼내기. 정규표현식 사용. df['Name'].str.extract('([A-Za-z]+\.)

 

df_train['Initial'] = df_train['Name'].str.extract('([A-Za-z]+)\.')
df_test['Initial'] = df_test['Name'].str.extract('([A-Za-z]+)\.')

# 추출대상에 공백을 포함하지 않아서 공백은 나오지 않음.

df_train.Initial

📌 판다스 Initial과 Sex의 관계를 Crosstab으로 나타내기

pd.crosstab(df_train['Initial'],df_train['Sex']).T.style.background_gradient(cmap='summer_r')

 

pd.crosstab(df_train['Initial'],df_train['Sex']).T.style.background_gradient(cmap='summer_r')

 

 

📌 Initial 별 평균

df_train.groupby('Initial').mean()

📌 Initial 별 생존율 평균

df_train.groupby('Initial')['Survived'].mean().plot.bar()

📌 df_train과 df_test를 concat을 사용해서 하나의 데이터로 만들기

df_all = pd.concat([df_train,df_test])

 

🔍concat([데이터프레임리스트]) : 데이터프레임을 말그대로 물리적으로 이어 붙여주는 함수.

이어붙여 행 인덱스번호도 그대로 가져왔기때문에, ignore_index=True을 줘서 인덱스를 재배열 할 수 있다.

💡 axis = 0 (기본값)이 적용되기 때문에 행방향(위아래)으로 데이터프레임을 이어붙인다.

    열방향  axis=1(좌우)으로 이어붙인다.

💡 join = outer ( 기본값)

이어붙이는 방식을 outer는 합집합, inner는 교집합을 의미.

inner옵션을 줘서 이어붙일 두 데이터에 모두 존재하는 행인덱스만 가져올 수 있다. 

join함수는 merge()함수를 기반으로 만들어졌기 때문에 기본 작동방식이 비슷하다. 하지만 join()은 행 인덱스를 기준으로 결합한다는 점에서 차이가 있다. 그래도 이 함수도 on=keys 옵션이 존재한다.

🔍merge() : 두 데이터프레임을 각 데이터에 존재하는 고유값(key)을 기준으로 병합할때 사용.

pd.merge(df_left,  df_right,  how='inner',  on=None)이 기본값

 

🔍 join() : merge()함수를 기반으로 만들어졌기 때문에 기본 작동방식이 비슷하다.

하지만 join()은 행 인덱스를 기준으로 결합한다는 점에서 차이가 있다.

그래도 이 함수도 on=keys 옵션이 존재한다.

data.join(data2, how='left')이 기본값

 

📌 loc

loc은 location의 약자이다.
데이터 프레임 행/열의 라벨을 통해 가져오는 방법이다.
쉽게 생각해 칼럼 '이름' 같은 것으로 생각하면 될 것 같다.

슬라이싱을 통해서 여러 값을 가져올 수도 있다.

df_train.loc[:1,:'Name']