【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

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学