w8 과제1

성별에 따른 생존, 사망자 수 담긴 df 만들기

In [1]:
import pandas as pd
train = pd.read_csv('train.csv')

train.head()
Out[1]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
In [19]:
#1 남자면서 pc 1인 승객 수?
cnt = train.loc[(train['Sex']=='male')& (train['Pclass']==1), 
                'PassengerId'].count()
print('남자면서 pc 1인 승객 수?',cnt)

#2 남자, pc 1, f 50 이상 승객 수?
cnt2 = train.loc[(train['Sex']=='male')& (train['Pclass']==1)&(train['Fare']>=50), 
                'PassengerId'].count()
print('남자, pc 1, f 50 이상 승객 수?',cnt2)

#3 사망 여자 수?
cnt3 = train.loc[(train['Sex']=='female')& (train['Survived']==0), 
                'PassengerId'].count()
print('사망 여자 수 :', cnt3)

print('*'*40)


#5 사망 남/여, 생존 남/여 수?
cnt4 = train.loc[(train['Sex']=='female')& (train['Survived']==0), 
                'PassengerId'].count()
print('사망 여자 수 :', cnt4)
print(cnt4)

cnt5 = train.loc[(train['Sex']=='male')& (train['Survived']==0), 
                'PassengerId'].count()
print('사망 남자 수 :', cnt5)
print(cnt5)

cnt6 = train.loc[(train['Sex']=='female')& (train['Survived']==1), 
                'PassengerId'].count()
print('생존 여자 수 :', cnt6)
print(cnt6)

cnt7 = train.loc[(train['Sex']=='male')& (train['Survived']==1), 
                'PassengerId'].count()
print('생존 남자 수 :', cnt7)
print(cnt7)

#6 df 만들기
import pandas as pd
df = pd.DataFrame({'male':[cnt5, cnt7], 'female':[cnt4,cnt6]}, index=['Dead', 'Survived'])
df
남자면서 pc 1인 승객 수? 122
남자, pc 1, f 50 이상 승객 수? 58
사망 여자 수 : 81
****************************************
사망 여자 수 : 81
81
사망 남자 수 : 468
468
생존 여자 수 : 233
233
생존 남자 수 : 109
109
Out[19]:
male female
Dead 468 81
Survived 109 233

과제 2

In [40]:
#1 성별별로 나누어, 생존자 수 카운트
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

dead_cnt = train.loc[train['Survived'] == 0, 'PassengerId'].count()
survived_cnt = train.loc[train['Survived'] == 1, 'PassengerId'].count()

sns.countplot(data=train, x='Survived', hue='Sex')
Out[40]:
<matplotlib.axes._subplots.AxesSubplot at 0x21d193edb88>
In [46]:
# #2 Pclass 별로 나누어 사망자, 생존자 수 카운트
sns.catplot(data=train, x='Survived', hue='Pclass', kind='count')
Out[46]:
<seaborn.axisgrid.FacetGrid at 0x21d18cc8508>
In [47]:
##3 embarked 별 사망/생존 차트
sns.catplot(data=train, x='Survived', hue='Embarked', kind='count')
Out[47]:
<seaborn.axisgrid.FacetGrid at 0x21d196c0b48>
In [48]:
##4 나이별 사맹/생존 차트
sns.catplot(data=train, x='Survived', hue='Age', kind='count')

##5 age를 대표 수로 단순화시킨다.
Out[48]:
<seaborn.axisgrid.FacetGrid at 0x21d18f38308>
In [ ]: