Python3数据分析与挖掘建模(3)探索性数据分析

1. 概述

探索性数据分析(Exploratory Data Analysis,EDA)是一种数据分析的方法,用于探索和理解数据集的特征、关系和分布等。EDA旨在揭示数据中的模式、异常值、缺失值等信息,并为后续的分析和建模提供基础。以下是关于探索性数据分析的一些重要概念和方法:

(1)数据摘要:通过计算描述性统计量,如均值、中位数、标准差、最小值、最大值等,对数据集的特征进行摘要和总结。这些统计量可以帮助了解数据的中心趋势、离散程度和分布情况。

(2)数据可视化:利用图表、图形和可视化技术,将数据以直观的方式展示出来。常用的可视化方法包括直方图、箱线图、散点图、折线图等。通过数据可视化,可以发现数据的分布、趋势、异常值和关系等特征。

(3)缺失值处理:探索性数据分析中常常需要处理缺失值。可以通过计算缺失值的数量和比例来了解数据缺失的情况,并根据具体情况选择合适的方法进行处理,如删除缺失值、填充缺失值等。

(4)异常值检测:通过观察数据的分布和统计指标,识别可能存在的异常值或离群点。异常值可能是数据采集或记录错误,或者表示了潜在的特殊情况。在探索性数据分析中,可以使用箱线图、散点图等方法来辅助异常值检测。

(5)变量之间的关系探索:通过相关性分析、散点图矩阵、热力图等方法,探索不同变量之间的关系。这可以帮助了解变量之间的相关性、依赖关系和影响因素。

探索性数据分析是数据分析的重要环节,它可以帮助熟悉数据、发现数据中的规律和异常,为后续的数据建模、特征工程和推断性分析提供基础。在进行探索性数据分析时,需要充分利用统计和可视化工具,同时保持灵活性和开放性的思维,以发现潜在的数据洞察和问题。

2. 探索性数据分析(单因子与对比分析)可视化

在探索性数据分析中,可以使用单因子分析和对比分析来探索数据,并通过可视化方法呈现结果。下面是一些常用的可视化技术和图表,适用于单因子和对比分析:

2.1 单因子分析可视化:

(1)直方图:将数据按照不同的区间进行分组,并用矩形条表示每个区间的频数或频率。直方图可以显示数据的分布情况和形状。

(2)箱线图:通过五数概括(最小值、下四分位数、中位数、上四分位数、最大值),展示数据的中心趋势和离散程度。箱线图还可以显示异常值和离群点。

 (3)密度图:通过在数据分布曲线下方填充面积,展示数据的概率密度。密度图可以显示数据的分布形态和峰值。

 (4)折线图:将数据按照顺序和连线方式展示,可以显示数据的变化趋势和趋势方向。

2.2 对比分析可视化:

(1)柱状图:用垂直或水平的矩形条表示不同类别或组别的数据,并可比较它们之间的差异。柱状图常用于对比不同组别的数据。

 (2)帕累托图:将数据按照贡献程度排序,并用累积百分比的折线图展示。帕累托图可以帮助确定主要因素或贡献最大的类别。

 (3)散点图:用二维坐标轴表示两个变量的关系,并以散点的形式展示数据点。散点图可以用于比较两个变量之间的关系和趋势。

 (4)雷达图:以多个坐标轴表示不同变量,通过将数据点连接起来形成多边形区域,展示多个变量之间的对比关系。雷达图适用于多维度的对比分析。

以上是常见的可视化方法,可以根据具体情况和数据特点选择合适的图表进行探索性数据分析。这些可视化方法能够直观地呈现数据,帮助发现数据中的规律、异常和差异,并为进一步分析和决策提供参考。

3. 数据示例

数据源文件:

 读取数据流程

import pandas as pd
# 读取数据
df=pd.read_csv("data/HR.csv")
# 设置显示选项,将最大列数设置为None,以显示所有列
pd.set_option('display.max_columns', None)
# 使用head()查看DataFrame
df.head(10)
Out[6]: 
   satisfaction_level  last_evaluation  number_project  average_monthly_hours   
0                0.38             0.53               2                    157  \
1                0.80             0.86               5                    262   
2                0.11             0.88               7                    272   
3                0.72             0.87               5                    223   
4                0.37             0.52               2                    159   
5                0.41             0.50               2                    153   
6                0.10             0.77               6                    247   
7                0.92             0.85               5                    259   
8                0.89             1.00               5                    224   
9                0.42             0.53               2                    142   
   time_spend_company  Work_accident  left  promotion_last_5years department   
0                   3              0     1                      0      sales  \
1                   6              0     1                      0      sales   
2                   4              0     1                      0      sales   
3                   5              0     1                      0      sales   
4                   3              0     1                      0      sales   
5                   3              0     1                      0      sales   
6                   4              0     1                      0      sales   
7                   5              0     1                      0      sales   
8                   5              0     1                      0      sales   
9                   3              0     1                      0      sales   
   salary  
0     low  
1  medium  
2  medium  
3     low  
4     low  
5     low  
6     low  
7     low  
8     low  
9     low  

通过调用pd.set_option('display.max_columns', None),将display.max_columns选项设置为None,可以显示所有列。然后使用print(df.head())打印DataFrame,将会显示所有列的数据。

注意:当DataFrame具有很多列时,可能会导致输出结果在控制台中显示不全,因为控制台有一定的宽度限制。在这种情况下,你可以使用水平滚动条或将结果导出到文件中来查看完整的列数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25766.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CISCN 2023 初赛 pwn——Shellwego 题解

这是一个用go语言写的elf程序,没有PIE。这也是本蒟蒻第一次解go pwn题,故在此记录以便参考。 而且,这还是一个全部符号表被抠的go elf,直接面对一堆不知名的函数实在有些应付不来,因此在比赛时委托逆向的队友把符号表…

​【指针与数组的恩怨情仇】

指针和数组的关系 指针指的是指针变量,不是数组,指针变量的大小是4/8个字节,是专门来存放地址的。数组也不是指针,数组是一块连续的空间,存放一组相同类型的数据的。 没有关系,但是它们之间有比较相似的地方…

【Netty】一行简单的writeAndFlush都做了哪些事(十八)

文章目录 前言一、源码分析1.1 ctx.writeAndFlush 的逻辑1.2 writeAndFlush 源码1.3 ChannelOutBoundBuff 类1.4 addMessage 方法1.5 addFlush 方法1.6 AbstractNioByteChannel 类 总结 前言 回顾Netty系列文章: Netty 概述(一)Netty 架构设…

好用的Chrome浏览器插件推荐(不定期更新)

好用的Chrome浏览器插件推荐 1.1 CSDN-浏览器助手1.2 Google 翻译1.3 JSON Viewer1.4 ModHeader - Modify HTTP headers1.5 Octotree - GitHub code tree 1.1 CSDN-浏览器助手 CSDN-浏览器助手 是一款集成本地书签、历史记录与 CSDN搜索(so.csdn.net) 的搜索工具 推荐&#x…

自动驾驶车载MCU开发修炼秘籍

目录 车载MCU开发修炼秘籍1、恩智浦 S32K1XX系列2、英飞凌 AURIX TC3XX3、嵌入式实时操作系统-FreeRTOS4、车载实时操作系统-AUTOSAR 车载MCU开发修炼秘籍 1、恩智浦 S32K1XX系列 S32K14X学习笔记(一)–S32K汽车MCU资源总结 S32K14X学习笔记&#xff1a…

第二章 数据类型、运算符与表达式

如何打开项目 如何打开已经存在的解决方案? 找到要打开的解决方案目录,进去之后双击后缀为.sln的文件即可打开该解决方案。 或者从最近打开项目中打开: Online Judge使用 OJ简介 在线判题系统(Online Judge,缩写OJ…

WebService接口测试

WebService的理解 WebService就是Web服务的意思,对应的应用层协议为SOAP(相当于HTTP协议),可理解为远程调用技术。 特点: 客户端发送的请求主体内容(请求报文)的格式为XML格式 接口返回的响…

【P36】JMeter 交替控制器(Interleave Controller)

文章目录 一、交替控制器(Interleave Controller)参数说明二、测试计划设计 一、交替控制器(Interleave Controller)参数说明 可以将内部的组件在线程迭代时交替执行;交替控制器内部一般会有多个取样器 选择线程组右…

黑马Redis视频教程高级篇(一:分布式缓存)

目录 分布式缓存 一、Redis持久化 1.1、RDB持久化 1.1.1、执行时机 1.1.2、RDB原理 1.1.3、小结 1.2、OF持久化 1.2.1、AOF原理 1.2.2、OF配置 1.2.3、AOF文件重写 1.3、RDB与AOF对比 二、Redis主从 2.1、搭建主从架构 2.1.1、集群结构 2.1.2、准备实例和配置 …

多层级table联动

elementui 多层级table联动: 引用: https://blog.csdn.net/weixin_44780971/article/details/130054925 https://blog.csdn.net/qq_42581563/article/details/114325920 需要了解的属性: select-all 全选的时候执行select : 选择…

linux高级---k8s中的五种控制器

文章目录 一、k8s的控制器类型二、pod与控制器之间的关系三、状态与无状态化对特点四、Deployment1、Deployment的资源清单文件2、在配置清单中调用deployment控制器3、镜像更新4、金丝雀发布5、删除Deployment 五、Statefulset六、DaemonSet1、daemonset的资源清单文件2、在配…

点到直线距离

点到直线距离最小二乘解释 推倒部分 形象描述是C到AB距离最短,也就是CD最短用数学语言描述是 m i n ∣ ∣ ( B − A ) λ A − C ∣ ∣ min||(B-A) \lambda A - C || min∣∣(B−A)λA−C∣∣ 其中 D ( B − A ) λ A D (B-A) \lambda A D(B−A)λA,其实本质…

使用Windbg动态调试目标进程的一般步骤及相关要点详解

目录 1、概述 2、将Windbg附加到已经启动起来的目标进程上,或者用Windbg启动目标程序 2.1、将Windbg附加到已经启动起来的目标进程上 2.2、用Windbg启动目标程序 2.3、Windbg关联到目标进程上会中断下来,输入g命令将该中断跳过去 3、分析实例说明 …

macOS Ventura 13.5beta2 (22G5038d)发布

系统介绍 黑果魏叔 6 月 1 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 2 更新(内部版本号:22G5038d),本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fac…

FPGA基于AXI 1G/2.5G Ethernet Subsystem实现千兆UDP通信 提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、详细设计方案传统UDP网络通信方案本方案详细设计说明UDP层设计AXIS-FIFOAXI 1G/2.5G Ethernet Subsystem:输出 4、vivado工程详解5、上板调试验证并演示系统配置UDP数据回环测试注意事项 6、福利:工程代码的获取 1…

RK3588平台开发系列讲解(项目篇)RKNN-Toolkit2 的使用

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、RKNN-Toolkit2安装二、模型转换和模型推理三、性能和内存评估沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 NPU 是专门用于神经网络的处理单元。它旨在加速人工智能领域的神经网络算法,如机器视觉和自…

如何在 Linux 中进行网络地址转换 (NAT)?

网络地址转换(Network Address Translation,简称NAT)是一种在网络中使用的技术,它允许将私有网络中的IP地址映射到公共网络上,从而实现多个设备共享单个公共IP地址。在Linux系统中,我们可以使用一些工具和配…

《Web安全基础》01. 基础知识

基础 1:概念名词1.1:域名1.2:DNS1.3:网站开发语言1.4:后门1.5:Web1.6:Web 相关安全漏洞 2:数据包2.1:HTTP2.2:HTTPS2.3:请求数据包2.3.1&#xff…

MySQL 数据操纵语言 DML

文章目录 数据操纵语言 DMLINSERT 语句UPDATE 语句DELETE 语句 数据操纵语言 DML 数据操纵语言(Data Manipulation Language,DML)是 SQL 语言的核心部分之一。在添加、更新或者删除表中的数据时,需要执行 DML 语句。很多时候我们提…

03 【数据代理 事件处理】

03 【数据代理 事件处理】 1.数据代理 了解数据代理需要js的一些知识:Object.defineProperty(),属性标志,属性描述符,getter,setter。。。 1.1数据代理 建议学习文章地址: https://zh.javascript.info/p…