【Python基础】案例分析:泰坦尼克分析

2024-02-07 19:36

本文主要是介绍【Python基础】案例分析:泰坦尼克分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

泰坦尼克分析

1 目的:

  • 熟悉数据集
  • 熟悉seaborn各种操作作
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
home = r'data'
df = sns.load_dataset('titanic', data_home=home)
df.head()
survivedpclasssexagesibspparchfareembarkedclasswhoadult_maledeckembark_townalivealone
003male22.0107.2500SThirdmanTrueNaNSouthamptonnoFalse
111female38.01071.2833CFirstwomanFalseCCherbourgyesFalse
213female26.0007.9250SThirdwomanFalseNaNSouthamptonyesTrue
311female35.01053.1000SFirstwomanFalseCSouthamptonyesFalse
403male35.0008.0500SThirdmanTrueNaNSouthamptonnoTrue

2 数据整理

  • 缺省值统计
  • 缺省值处理:删除或补齐
  • 数据二次处理

2.1 统计缺省值计缺省值

df.isnull().sum()
survived         0
pclass           0
sex              0
age            177
sibsp            0
parch            0
fare             0
embarked         2
class            0
who              0
adult_male       0
deck           688
embark_town      2
alive            0
alone            0
dtype: int64

2.2 删除与填充

  • 删除deck列
pdata = df.drop('deck', axis=1)
pdata.head()
survivedpclasssexagesibspparchfareembarkedclasswhoadult_maleembark_townalivealone
003male22.0107.2500SThirdmanTrueSouthamptonnoFalse
111female38.01071.2833CFirstwomanFalseCherbourgyesFalse
213female26.0007.9250SThirdwomanFalseSouthamptonyesTrue
311female35.01053.1000SFirstwomanFalseSouthamptonyesFalse
403male35.0008.0500SThirdmanTrueSouthamptonnoTrue
  • 年龄使用均值填充
#填充均值
pdata = pdata.fillna(pdata.mean(numeric_only=True)) #Notes:添加numeric_only=True只对数字做处理
#年龄分类
pdata['age_level'] = pd.cut(pdata.age,bins = [0,18,60,100], labels=['child','mid', 'old'])
pdata.head()
survivedpclasssexagesibspparchfareembarkedclasswhoadult_maleembark_townalivealoneage_level
003male22.0107.2500SThirdmanTrueSouthamptonnoFalsemid
111female38.01071.2833CFirstwomanFalseCherbourgyesFalsemid
213female26.0007.9250SThirdwomanFalseSouthamptonyesTruemid
311female35.01053.1000SFirstwomanFalseSouthamptonyesFalsemid
403male35.0008.0500SThirdmanTrueSouthamptonnoTruemid

3 数据统计

3.1 基础数据统计

  • 年龄分布
  • 船舱人数分布
  • 男女分布
  • 团队人数分布

年龄较分散,使用直方图进行展示方图进行展示

sns.distplot(pdata.age)
 UserWarning: `distplot` is a deprecated function and will be removed in seaborn v0.14.0.Please adapt your code to use either `displot` (a figure-level function with
similar flexibility) or `histplot` (an axes-level function for histograms).For a guide to updating your code to use the new functions, please see
https://gist.github.com/mwaskom/de44147ed2974457ad6372750bbe5751sns.distplot(pdata.age)<AxesSubplot: xlabel='age', ylabel='Density'>


sns.boxplot(pdata.age)
<AxesSubplot: ylabel='age'>


船舱人数,男女人数,团队人数(1个人,两个人,三个人对应的数量)使用柱状图进行展示

cols = ['sex', 'pclass', 'sibsp']
lens = len(cols)
plt.figure(figsize=(14,3))
for index, col in enumerate(cols):plt.subplot(1, lens,index+1)ax = sns.countplot(x=col, data=pdata)ax.set_title(col)


3.2 获救数据

  • 获救人数与遇难人数
  • 根据性别,统计获救与遇难人数
  • 根据年龄段,统计获救与遇难人数
  • 根据年龄段,性别,统计获救与遇难人数
  • 根据年龄段,性别,船舱,统计获救与遇难人数
sns.countplot(x='survived', data=pdata)
<AxesSubplot: xlabel='survived', ylabel='count'>


  • 根据性别进行分类
sns.countplot(x='sex', data=pdata, hue='survived')
<AxesSubplot: xlabel='sex', ylabel='count'>


  • 年龄与获救关系
sns.countplot(x='age_level', data=pdata, hue='survived')
<AxesSubplot: xlabel='age_level', ylabel='count'>


  • 性别,获救,年龄段,船舱获救统计
sns.catplot(x='sex', hue='survived', data=pdata, kind='count', col='age_level', row='pclass')
<seaborn.axisgrid.FacetGrid at 0x1d4d126dc10>


这篇关于【Python基础】案例分析:泰坦尼克分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/688702

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作