泰坦尼克号数据分析
分析目的:
分析影响乘客生存的因素
#导入相应的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
导入数据
网上有很多共享的数据,直接下载就好了
train = pd.read_csv(‘train.csv’,encoding = ‘utf-8’)
查看数据前5 行
train.head()
数据集共有12个属性
PassengerId :乘客ID
Survived :存活(0代表死亡,1代表存活)
Pclass : 船舱等级(1为最高等级)
Name : 乘客姓名
Sex : 性别
Age :年龄
SibSp :同行的兄弟姐妹或朋友的数量
Parch :同行的父母或子女的数量
Ticket :船票号
Fare : 船票价格
Cabin :客舱号码
Embarked :登船港口
数值型数据描述性分析
train.describe()
数据预处理
缺失值处理
train.isnull().sum()
train.Age = train.Age.fillna(train.Age.mean())
train.Embarked = train.Embarked.fillna(method = ‘ffill’)
train.isnull().sum()
重复值处理
train[train.duplicated(subset = [‘Name’,‘Sex’])] #数据集中没有重复数据
合并SibSp与Parch属性
train[‘Sib_Par’] = train[‘SibSp’] + train[‘Parch’]
异常值处理
train.Fare.plot(kind = ‘box’)
train[train.Fare>200]
#train[train.Fare>200].count()
train[train.Fare>500]
train.loc[train.Fare > 500 , ‘Fare’] = 227
#查看票价为0的数据
train[(train[‘Fare’] == 0)]
train[(train[‘Pclass’]== 1) & (train[‘Fare’] == 0)]
train[(train[‘Pclass’]== 2) & (train[‘Fare’] == 0)]
train[(train[‘Pclass’]== 3) & (train[‘Fare’] == 0)]
删除无用的属性
train.drop([‘PassengerId’,‘Name’,‘Ticket’,‘Cabin’,‘SibSp’,‘Parch’]