Python——泰坦尼克号数据分析

打印 上一主题 下一主题

主题 548|帖子 548|积分 1644

目次

1.数据集(部门数据)
  ✏️ 2、导入数据集与须要模块
⌨️ 3.数据预处理
1️⃣ isnull函数查看有无缺失值
2️⃣fillna函数添补缺失值
  Age字段使用均匀值添补缺失值
  Embarked字段添补缺失值
3️⃣ 删除缺失值较多的字段
  4.数据可视化
1️⃣ distplot函数结合了直方图和核密度估计图来展示数据的分布特征
2️⃣  countplot函数绘制条形图,显示分类变量的观察计数
3️⃣ boxenplot函数绘制箱线图
4️⃣ violinplot函数绘制小提琴图
5️⃣  对年事举行分级,分开小孩和老人的数据
   对分级后的年事举行可视化
   分析乘客年事与生还乘客之间的关系


1.数据集(部门数据)


字段名称含义说明
Survived乘客是否获救,Key:0=没获救,1=已获救
Pclass乘客船舱品级(1/2/3三个品级舱位)
Name乘客姓名
Sex性别
Age年事
SibSp乘客在船上的兄弟姐妹/夫妇数量
Parch乘客在船上的父母/孩子数量
Ticket船票号
Fare船票价
Cabin客舱号码
Embarked登船的港口

✏️ 2、导入数据集与须要模块

  1. # 1.导入必要的模块
  2. import numpy as np
  3. import pandas as pd
  4. import seaborn as sns
  5. import matplotlib.pyplot as plt
  6. plt.rcParams['font.sans-serif'] = ['SimHei']    # 用来正常显示中文标签
  7. plt.rcParams['axes.unicode_minus'] = False   # 用来正常显示负号
  8. %matplotlib inline
  9. # 2.导入数据
  10. titanic = pd.read_csv(r"C:/XXX/xxx/Documents/mycrawlers/数据分析与可视化/实验六——泰坦尼克号/titanic.csv")
  11. # 3.查看前5行数据
  12. titanic.head()
复制代码


⌨️ 3.数据预处理

1️⃣ isnull函数查看有无缺失值

  1. # 查看有无缺失值
  2. titanic.isnull().sum()   
复制代码
  这里结合了sum方法,对字段的缺失值的个数举行求和

  从上述效果可见,Cabin(客舱号码)、Embarked(登船的港口)、Fare(船票价)、Age(年事)、Survived(乘客是否获救)字段中均有缺失值,而Cabin和Survived是必要考虑实际的环境,从而没有办法对缺失值举行添补,因此我们对Age字段按照均匀值的方式对其举行添补,作为一个参考
2️⃣fillna函数添补缺失值

fillna(value,method,axis,inplace,limit,downcast)
字段数据范例含义
valuedict or series or dataframe
用于添补缺失值的值。如果传递的是标量,那么整个对象中的所有缺失值都会被这个标量替换。如果传递的是字典,那么字典的键应该是列名,值则是用于替换该列缺失值的值。如果传递的是 Series 或 DataFrame,则它们的索引必须和原对象的索引对齐,以便举行按位置的替换

method

str
用于添补缺失值的方法。

'backfill' 或 'bfill':使用下一个有用值举行添补(向后添补)

'pad' 或 'ffill':使用前一个有用值举行添补(向前添补)

None:不举行任何添补,仅返回原始对象

axis

int or str
确定沿着哪个轴举行添补。0 或 'index' 表现按行(即沿着水平轴),1 或 'columns' 表现按列(即沿着垂直轴)

inplace

bool
默以为 False,如果为 True,则直接修改原始对象而不返回新的对象

limit

int
如果 method 不是 None,则此参数用于限制连续添补的最大数量。比方,如果 limit=1,则最多只添补一个缺失值

downcast

dict or str
将可能更大的数据范例向下转换为可能更小的数据范例,以节流内存。比方,如果某个列是 float64 范例,但所有值都是整数,那么可以将其转换为 int64 范例

Age字段使用均匀值添补缺失值

  1. # 1.求age这一列的平均值
  2. mean = titanic['Age'].mean()  
  3. # 2.查看平均值
  4. print(mean)
  5. # 3.用均值进行缺失值的填充
  6. titanic['Age'] = titanic['Age'].fillna(mean)
  7. # 4.统计缺失值
  8. titanic.isnull().sum()
复制代码

从上图的效果可知,Age字段没有缺失值,因此缺失值添补成功,而Embarked字段也可以举行添补
Embarked字段添补缺失值



  • 使用value_counts来统计登船地点(S,C,Q)的人数
  1. # 1.统计登船地点(S,C,Q)的人数
  2. titanic['Embarked'].value_counts()
  3. # 2.得到的结果为
  4. S    914
  5. C    270
  6. Q    123
  7. Name: Embarked, dtype: int64
复制代码


  • 对登船地点举行缺失值的添补(添补为S)
  1. # 1.对登船地点进行缺失值的填充(填充为S)
  2. titanic['Embarked'] = titanic['Embarked'].fillna("S")
  3. # 2.统计Embarked字段的缺失值
  4. titanic['Embarked'].isnull().sum()
  5. # 3.得到的结果为
  6. 0
复制代码
3️⃣ 删除缺失值较多的字段

  1. # 1.删除缺失值较多的字段
  2. del titanic['Cabin']
  3. # 2.查看数据的前五行信息
  4. titanic.head()
复制代码


4.数据可视化

1️⃣ distplot函数结合了直方图和核密度估计图来展示数据的分布特征



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表