<jupyter_start><jupyter_text>Titanic * 머신러닝을 사용하지 않고 데이터를 보고 판다스로 생존여부 데이터를 직접 채워주기<jupyter_code>import pandas as pd
import numpy as np<jupyter_output><empty_output><jupyter_text>데이터를 불러옵니다.<jupyter_code>train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
print(train.shape)
print(test.shape)
train.head()
test.head()<jupyter_output><empty_output><jupyter_text>describe()로 데이터를 요약해 봅니다.<jupyter_code>train.describe()
test.describe()<jupyter_output><empty_output><jupyter_text>info를 통해 데이터를 요약해 봅니다.<jupyter_code>train.info()<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB<jupyter_text>성별에 따른 생존률 생존여부가 1과 0으로 되어 있기 때문에 평균을 구하면 생존률이 됩니다.<jupyter_code>train.groupby('Sex')[['Survived']].mean()
train.pivot_table(values=['Survived'], index=['Sex'], aggfunc=np.mean)
train.pivot_table(index=['Sex'])
# 성별의 4분위수를 보는것은 의미는 없습니다. 다만, describe를 써서 다음과 같은 형태의 분석도 가능하다는 예시입니다.
train.groupby('Sex')[['Survived']].describe()
# 성별, 선실등급별 생존률
train.pivot_table('Survived', ['Sex', 'Pclass'], aggfunc=np.mean)
train.groupby('Sex')[['Survived']].mean()<jupyter_output><empty_output><jupyter_text>엑셀에서 했던것과 동일하게 여성일 때 생존했다고 가정하고 Survived 데이터를 채워줍니다.<jupyter_code>test['Survived'] = (test.Sex == 'female') & (test.Age > 0) & (test.Embarked )
test.head()
test.isnull().sum()
test['Survived'].value_counts()<jupyter_output><empty_output><jupyter_text>pandas의 데이터프레임 복사에 대해 이해합니다.* 참고 [Understanding SettingwithCopyWarning in pandas](https://www.dataquest.io/blog/settingwithcopywarning/)<jupyter_code>submission = test[['PassengerId', 'Survived']].copy()
submission.head()<jupyter_output><empty_output><jupyter_text>제출형태에 맞는 데이터 타입으로 변경해 줍니다.<jupyter_code>submission['Survived'] = submission['Survived'].astype(int)
submission.head()<jupyter_output><empty_output><jupyter_text>csv 형태로 파일을 만듭니다.<jupyter_code># %mkdir submissions
submission.to_csv('submissions/submission.csv', index=False)<jupyter_output><empty_output><jupyter_text>탐색기 혹은 Finder에서 제출파일을 얻어 제출하기 위해 경로를 얻어옵니다.<jupyter_code>#%pwd<jupyter_output><empty_output>