一、讀入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(有缺失)
1 import pandas as pd 2 titanic = pd.DataFrame(pd.read_excel(r'C:\Users\Administrator.PC-20180405YJVN\Desktop\titanic.xlsx')) 3 titanic.head()
1 #刪除無效行與列 2 titanic.drop('embark_town',axis=1,inplace=True) 3 titanic.head()
1 #查找重復值 2 titanic.duplicated()
1 #重復值處理 2 titanic = titanic.drop_duplicates() 3 titanic.head()
1 #統計空值的個數 2 titanic['who'].isnull().value_counts()
1 #使用fillna方法為“who”字段的空值填充數據“man” 2 titanic['who']=titanic['who'].fillna('man') 3 titanic.head()
1 #對於數據表中“age”字段的空值,為其填充平均值 2 titanic['age']=titanic['age'].fillna(titanic['age'].mean()) 3 titanic.head()
1 #判斷是否存在異常值 2 titanic.describe()
1 #將異常值替換為平均值 2 titanic.replace([512.329200],titanic['fare'].mean()) 3 titanic.head()
二、對titanic數據集完成以下統計操作
1.統計乘客死亡和存活人數
1 titanic['survived'].value_counts()
2.統計乘客中男女性別人數
1 titanic['sex'].value_counts()
3.統計男女獲救的人數
1 survive = titanic['sex'][titanic['survived']==1].value_counts() 2 print(survive)
4.統計乘客所在的船艙等級的人數
1 titanic['pclass'].value_counts()
5.使用corr()函數,判斷兩個屬性是否具有相關性,分析艙位的高低和存活率的關系
1 titanic['pclass'].corr(titanic['survived'])
分析:根據數據可得,這是負相關,即艙位越高,存活率越高,反之亦然。
6.畫出乘客票價與艙位等級的箱體圖Boxplot,從圖中能夠得到哪些結論?
1 titanic.boxplot(['fare'],['pclass'])
結論:艙位越高,價格越貴,存活率越高,反之亦然。