一、数据加载与基本信息检查

#例9.5
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings#引入第三方库plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
warnings.filterwarnings('ignore')    #防止弹出
df=pd.read_csv(r'D:**冠心病.csv')    #读取文件
print(df.shape)
df.head(10)
df.describe().T# 统计学分析
# df.info()# 检查有多少缺失的数据
df.isnull().sum()
sns.distplot(df['age'])
plt.show()
sns.distplot(df['sex'])    #绘制性别分布情况的频数分布表
plt.show()
sns.boxplot(x=df["TenYearCHD"],y=df["BMI"])    #绘制BMI与冠心病发病情况分布的箱图
plt.show()

1. 数据加载与基本信息检查

df = pd.read_csv(r'**冠心病.csv')
print(df.shape)       # 输出数据维度(行数, 列数)
df.head(10)           # 显示前10行数据
df.describe().T       # 输出统计描述(均值、标准差、分位数等,转置后更易读)
# df.info()           # 检查数据类型和缺失值(被注释)
df.isnull().sum()     # 统计每列的缺失值数量
  • describe().T 转置后,统计量(如均值、最大值)按列显示,更清晰。
  • isnull().sum() 直接输出缺失值数量,帮助判断是否需要数据清洗。

2. 数据可视化分析

(1) 年龄分布直方图
sns.distplot(df['age'])
plt.show()
  • 功能:绘制年龄的分布曲线(直方图 + 核密度估计)。
  • 用途:检查年龄是否服从正态分布或存在异常值(如年龄为负数)。
(2) 性别分布直方图
sns.distplot(df['sex'])
plt.show()
  • 问题:性别通常是分类变量(0/1),使用 distplot 不直观。
  • 建议:改用计数图(sns.countplot)更合适:
sns.countplot(x='sex', data=df)
plt.title('性别分布(0=女,1=男)')
plt.show()
(3) BMI与冠心病发病情况的箱线图
sns.boxplot(x=df["TenYearCHD"], y=df["BMI"])
plt.show()
  • 功能:比较冠心病患者(TenYearCHD=1)与非患者(TenYearCHD=0)的BMI分布差异。
  • 解读
    • 箱线图显示中位数、四分位数和异常值。
    • 若两组箱体位置明显不同,说明BMI可能与冠心病相关。

3. 代码优化建议

(1) 缺失值处理
  • 如果 isnull().sum() 显示有缺失值,需补充处理逻辑,例如
df.fillna(df.median(), inplace=True)  # 用中位数填充数值型缺失值
(2) 更直观的性别分布图
  • 使用 countplot 替代 distplot
sns.countplot(x='sex', data=df, palette='Set2')
plt.title('性别分布(0=女,1=男)')
plt.show()
(3) 添加图表标签和标题
  • 所有图表应补充标题和轴标签,例如:
sns.boxplot(x="TenYearCHD", y="BMI", data=df)
plt.xlabel('是否患冠心病(0=否,1=是)')
plt.ylabel('BMI指数')
plt.title('冠心病患者的BMI分布对比')
plt.show()
(4) 多变量联合分析
  • 探索更多特征与冠心病的关系,例如年龄与发病率的趋势:
sns.boxplot(x="TenYearCHD", y="age", data=df)
plt.xlabel('是否患冠心病')
plt.ylabel('年龄')
plt.show()

4. 关键输出说明

  1. df.describe().T

    • 输出每列数据的统计量,如:
      • age 的均值、最大值(判断是否存在不合理年龄)。
      • BMI 的标准差(判断数据离散程度)。
  2. df.isnull().sum()

    • 输出示例:
age             0
sex             2
BMI             5
TenYearCHD      0
    • 显示 sex 和 BMI

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如若转载,请注明出处:http://www.pswp.cn/diannao/88261.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/diannao/88261.shtml
    英文地址,请注明出处:http://en.pswp.cn/diannao/88261.shtml

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    Proteus8.0 打开前期版本的操作方法

    1.打开Proteus8.0 2. 打开菜单File->Import legacy Project 3.在Import Legacy Project 点击Browse按钮 4.选择要打开的例子目录 5.打开*.dsn文件 6.点击Import 7.导入成功 点击运行即可

    【innovus基础】- 对某根线单独route

    在某些特殊需求场景,我们可能需要对某些net进行单独的route,方法如下: 1、打开design browser,选择对应net:(或者使用selectNet命令) 2、Route → nano Route → 勾选selectNet only 可以看到…

    【Linux】network网络配置

    目录 1、介绍2、网络配置【1】查看【2】说明 3、工作流程【1】启动以太网接口【2】关闭接口时反向执行 4、现代替换方案 1、介绍 linux中network网络服务的核心配置位于/etc/sysconfig/network-scripts/目录下。它们共同构成了网络接口的管理框架,负责处理网络接口…

    深入解析 Taro 项目结构:从入门到精通

    在现代前端开发中,跨平台开发框架变得越来越重要。Taro 作为一款由京东凹凸实验室推出的多端统一开发框架,支持编译到微信小程序、支付宝小程序、百度小程序、H5、React Native 等多个平台,极大地提高了开发效率。然而,要充分发挥…

    零基础开始的网工之路第二十一天------系统安全基线和系统加固

    目录 一、系统安全基线 1、账户与认证安全 2、文件与目录权限 3、SSH服务安全 4、网络与服务配置 5、日志与审计 6、内核参数加固 7、更新与补丁 8、安全模块配置 9、SUID/SGID文件检查 10、默认权限控制(umask) 二、系统安全加固 1、账户与…

    Log4j 和 Log4j2的比较

    以下是 Log4j(通常指 Log4j 1.x)与 Log4j2 的核心对比分析,结合架构、性能、功能及适用场景,帮助开发者做出合理选择: 📊 一、架构与设计 特性Log4j 1.xLog4j2分析架构模型单模块设计,耦合度高…

    说说 Springboot 的启动流程?

    Spring Boot 的启动流程是一个相对复杂但有序的过程,它涉及多个组件和步骤的协同工作。以下是 Spring Boot 启动流程的详细解析: 一、初始化阶段 启动入口 Spring Boot 应用的启动入口通常是一个包含 main 方法的类,该类上标注了 SpringBoot…

    从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页

    如果php.ini已经加入了如下的内容还是报错 : upload_max_filesize 1024M post_max_size 1024M 那就是因为阿帕奇导致:

    10、java语法糖

    编译期处理:语法糖(即java编译器把。java的源码编译成。class字节码的过程中,自动生成和转换的一些代码,主要是为了减轻程序员的负担,算是java编译器给我们的一个额外福利-给糖吃) 默认构造器:…

    在Vscode中安装Sass并配置

    在Vscode中安装Sass并配置 sass简介安装Sass插件配置sass插件编写sass使用Sass sass简介 Sass(Syntactically Awesome Style Sheets,英文官方文档 )是一种CSS预处理器,扩展了CSS的功能并提供了更高效的样式表编写方式。它兼容所有CSS版本&am…

    深入解析 MySQL 并发控制:读写锁、锁粒度与高级优化

    深入解析 MySQL 并发控制:读写锁、锁粒度与 InnoDB 实现细节 在高并发数据库应用中,确保数据一致性的同时最大化性能是永恒的挑战。MySQL 通过精巧的 锁机制(Locking) 和 多版本并发控制(MVCC) 来解决这个问题。本文聚焦于锁机制的核心:读写锁(共享/排他锁) 和 锁粒度…

    【深度学习加速探秘】Winograd 卷积算法:让计算效率 “飞” 起来

    一、为什么需要 Winograd 卷积算法?从 “卷积计算瓶颈” 说起 在深度学习领域,卷积神经网络(CNN)被广泛应用于图像识别、目标检测、语义分割等任务。然而,卷积操作作为 CNN 的核心计算单元,其计算量巨大&a…

    前端项目脱离后端运行,备份后端API数据

    问题描述: 开发过的项目老是打不开,因为离开公司后服务器用不了了。所以想着在公司开发的时候把数据都备份一下,供之后参考项目代码。 实现方法: 建一个Express服务,前端请求Express,Express代理目标服务器…

    Windows下利用DevEcoStudio的交叉编译工具链编译assimp库给OpenHarmony使用

    文章目录 准备编译使用 准备 安装DevEco Studio,并且安装好对应OpenHarmony版本的SDK 比如我这里安装了API 11 的sdk 对应的文件夹 然后下载ASSIMP的源文件,我这里下载的是5.4.3版本 【assimp 5.4.3】 解压放在一个文件夹里面,并在源码文…

    批量大数据并发处理中的内存安全与高效调度设计(以Qt为例)

    背景 在批量处理大型文件(如高分辨率图片、视频片段、科学数据块)时,开发者通常希望利用多核CPU并行计算以提升处理效率。然而,如果每个任务对象的数据量很大,直接批量并发处理极易导致系统内存被迅速耗尽,出现程序假死、崩溃,甚至系统级“死机”。 Qt自带的线程池(Q…

    微信小程序课程设计美食点餐订餐系统

    文章目录 1. 项目概述2. 项目思维导图3. 系统架构特点4. 核心模块实现代码1. 登录注册2. 首页模块实现4. 分类模块实现5. 购物车模块实现6. 订单模块实现 5. 注意事项6. 项目效果截图7. 关于作者其它项目视频教程介绍 1. 项目概述 在移动互联网时代,餐饮行业数字化…

    Linux中使用grep查看日志

    Linux中使用grep查看日志 文章目录 Linux中使用grep查看日志1、使用 grep 查找字符或字符串示例常用选项例子 2、显示前后上下文选项说明示例命令 结果示例 3、显示出现的次数使用示例选项说明示例其他方法总结 4、其他命令1. 基本用法2. 常用选项3. 正则表达式支持4. 其他实用…

    DataWhale-零基础络网爬虫技术(二er数据的解析与提取)

    课程链接先给各位 ↓↓↓ (点击即可食用.QAQ Datawhale-学用 AI,从此开始 一、数据的解析与提取 数据提取的几种方式: re解析bs4解析xpath解析 1.1正则表达式(Reuglar Experssion) RE是一种用于字符串匹配的规则描述方式。它…

    Gin框架与Apifox

    第一部分:技术栈概述 1. Go语言简介 Go(又称Golang)是Google开发的一门静态类型、编译型编程语言,具有以下特点: 高性能:编译为机器码,执行效率接近C/C 简洁语法:没有复杂的OOP概…

    Docker 容器技术入门与环境部署

    一、Docker 技术概述与核心概念解析 (一)Docker 技术本质与定位 Docker 是当前主流的操作系统级容器虚拟化技术,其核心价值在于通过轻量化隔离机制解决开发、测试与生产环境的一致性问题。与传统虚拟机(如 VMware)相…