一、读入titanic.xlsx文件,按照教材示例步骤,完成数据清洗。
titanic数据集包含11个特征,分别是:
Survived:0代表死亡,1代表存活
Pclass:乘客所持票类,有三种值(1,2,3)
Name:乘客姓名
Sex:乘客性别
Age:乘客年龄(有缺失)
SibSp:乘客兄弟姐妹/配偶的个数(整数值)
Parch:乘客父母/孩子的个数(整数值)
Ticket:票号(字符串)
Fare:乘客所持票的价格(浮点数,0-500不等)
Cabin:乘客所在船舱(有缺失)
Embark:乘客登船港口:S、C、Q(有缺失)
import pandas as pd #导入文件 titanic=pd.DataFrame(pd.read_excel('C:\\Users\\郭江鸿\\Desktop\\titanic.xlsx')) titanic.head()

titanic.drop('embark_town',axis=1,inplace=True) #xxx列不需要进行删除 axis=1 为列 ;axis=0 为行 titanic.head()

titanic.duplicated() #判断是否重复

titanic=titanic.drop_duplicates() #调用drop_duplicates函数删除重复值 titanic.shape #shape查看titanic二维数据表的维度

titanic['who'].isnull().value_counts() #判断who字段是否为空值,调用value_counts进行统计空值个数

titanic['who']=titanic['who'].fillna('man') #调用fillna方法填充man字段下的空值 titanic.head()

#为空值填充最大值(max)、最小值(min)、中值(median)、平均值(mean) titanic['age']=titanic['age'].fillna(titanic['age'].mean()) titanic.head()

titanic.describe() #查看DataFrame每栏的统计数据

#假设最大值512.329200是异常值,调用replace方法将其替换成平均值 titanic.replace([512.329200],titanic['fare'].mean) titanic.describe()

二、对titanic数据集完成以下统计操作
1.统计乘客死亡和存活人数
titanic['survived'].value_counts()

2.统计乘客中男女性别人数
titanic['sex'].value_counts()

3.统计男女获救的人数
titanic.groupby('sex')['survived'].value_counts().unstack()

4.统计乘客所在的船舱等级的人数
titanic.groupby(['pclass']).size()

5.使用corr()函数,判断两个属性是否具有相关性,分析舱位的高低和存活率的关系
titanic['survived'].corr(titanic['pclass'])

6.画出乘客票价与舱位等级的箱体图Boxplot,从图中能够得到哪些结论?
import pandas as pd import numpy as np import matplotlib.pyplot as plt T1 = titanic.fare[titanic.pclass == 1] T2 = titanic.fare[titanic.pclass == 2] T3 = titanic.fare[titanic.pclass == 3] plt.boxplot((T1,T2,T3)) plt.ylim(0,200) plt.show()

舱位越好票价越高。