”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 了解您的数据:探索性数据分析 (EDA) 的要点。

了解您的数据:探索性数据分析 (EDA) 的要点。

发布于2024-08-27
浏览:371

Understanding your data: The Essentials of Exploratory Data Analysis (EDA).

收集并存储数据后,需要对其进行分析以得出对其有意义的理解。正是由于这个原因,探索性数据分析(EDA)发挥了作用。顾名思义,我们正在“探索”数据,即获得数据的总体概述。

收集的数据可以是文本、视频或图像,通常以非结构化方式存储。您很少会找到 100% 干净的数据,即没有任何异常情况。此外,数据可能采用各种格式,例如 Excel、CSV(逗号分隔值)、Json、Parquet 等。

在数据世界中,EDA 也可以称为数据操作数据清理。行业从业者强调清理数据以删除“垃圾”的重要性,因为这可能会对结果和预测产生负面影响。结构化数据通常采用表格格式,可以使用多种技术和工具(如 Excel、Power BI、SQL)进行分析,但我们将重点关注 Python 来进行说明。

使用 Python 进行 EDA
Python 编程语言是 EDA 中最广泛的工具之一,因为它具有多功能性,可以跨多个行业使用,包括金融、教育、医疗保健、采矿、酒店等。
内置库,即 Pandas 和 NumPy 在这方面非常有效,并且可以跨领域工作(无论是使用 Anaconda/Jupyter Notebook、Google Collab 还是 Visual Studio 等 IDE)

以下是执行 EDA 时可执行的常见步骤和代码行:

首先,您将导入操作/分析所需的 python 库:

将 pandas 导入为 pd
将 numpy 导入为 np

其次,加载数据集
df = pd.read_excel('文件路径')

注:df是将表格数据转换为数据框的标准函数。

加载后,您可以使用以下代码预览数据:
df.head()

这将显示数据集的前 5 行
或者,您可以简单地运行 df ,它将显示整个数据集的选定几行(顶部和底部)以及其中的所有列。

第三,使用以下方式了解所有数据类型:
df.info()

注:数据类型包括整数(整数)、浮点(小数)或对象(定性数据/描述性文字)。

在这一步,建议使用以下方式获取数据的汇总统计:
df.describe()

这将为您提供平均值、众数、标准差、最大/最小值和四分位数等统计数据

第四,判断数据集中是否存在空值:
df.isnull()

然后可以检查重复项(重复条目)
df.duplicate()

EDA 的其他关键方面是检查数据集中的各个变量如何相互关联(相关性)及其分布
相关性可以为正,也可以为负,范围为-1到1。其代码为:

df.corr()

注:相关性接近1表示强正相关,接近-1表示强负相关

分布检查对称不对称数据,以及数据的偏度,它可以是正态、二项式、伯努利或泊松。

总之,探索性数据分析是更好地理解数据的重要过程。它可以实现更好的可视化和模型构建。

版本声明 本文转载于:https://dev.to/s_ndichu/understanding-your-data-the-essentials-of-exploratory-data-analysis-eda-1hh7?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 通过sponge+dtm快速轻松实现高性能的电商系统
    通过sponge+dtm快速轻松实现高性能的电商系统
    This article demonstrates how to use the Sponge framework to quickly build a simplified high-performance e-commerce system, implementing flash sale an...
    编程 发布于2024-11-07
  • 什么是 Java 中的关闭钩子以及如何有效地使用它?
    什么是 Java 中的关闭钩子以及如何有效地使用它?
    1. 了解关闭钩子 关闭钩子是 Java 中的一种特殊构造,允许您注册一个线程,该线程将在 Java 虚拟机 (JVM) 关闭时执行。这可以由各种事件触发,例如用户中断 (Ctrl C)、系统关闭或编程终止。 1.1 关闭钩子如何工作 当 JVM 启动时,它会创建...
    编程 发布于2024-11-07
  • 在 Web 工具中使用 JavaScript 进行安全加密
    在 Web 工具中使用 JavaScript 进行安全加密
    这是开发人员用来帮助保护程序中的敏感信息免受潜在攻击者攻击的方法。加密将可读数据转变为编码格式,只有使用正确的密钥才能解码;因此,它对于保护密码、财务详细信息和个人数据等信息的安全至关重要。 在数据泄露和网络攻击非常猖獗的时候,这一点变得非常重要。通过加密数据,开发人员将确保没有未经授权的一方在网络...
    编程 发布于2024-11-07
  • 如何将 java.util.Date 转换为 java.time 类型?
    如何将 java.util.Date 转换为 java.time 类型?
    将 java.util.Date 转换为 java.time 类型遗留的 java.util.Date 和 Calendar 类以其复杂性而闻名和麻烦。虽然建议使用 java.time 框架进行日期时间管理,但在使用现有代码时,必须在这些新旧类型之间进行转换。映射到 java.time 类型将 ja...
    编程 发布于2024-11-07
  • #daysofMiva 编码挑战日:JS 中的值和变量
    #daysofMiva 编码挑战日:JS 中的值和变量
    嗨,大家好。最近太忙了,都没有时间记录一下我的旅程是怎样的?无论如何,我会继续关注❤️。 对于我的第 5 天文档,我只是做了一些非常简单和简短的事情。 正如您从上面看到的,一旦您理解了值和变量,这就是一个非常简单的任务。 那么什么是值和变量? JavaScript 中的值 将值...
    编程 发布于2024-11-07
  • 您需要了解的 Python 4 关键特性
    您需要了解的 Python 4 关键特性
    Spotify、Google、NASA 和摩根大通有什么共同点?他们每天都使用Python。 Python 是一种令人印象深刻且全面的编程语言,在各种技术方法中发挥着至关重要的作用。从搜索引擎、网络应用程序、游戏到动画和其他编程语言,Python 都是发明的核心。 多年来,Python 经历了流行...
    编程 发布于2024-11-07
  • MySQL如何实现乐观锁?
    MySQL如何实现乐观锁?
    MySQL 中的乐观锁:全面解释乐观锁是数据库管理系统中采用的一种技术,用于防止在以下情况下可能出现的数据冲突:多个用户尝试同时更新相同的数据。虽然 MySQL 本身不支持乐观锁定,但可以使用标准 SQL 指令来实现。理解概念乐观锁定的操作假设数据不可能被多个用户频繁修改。该技术不是获取数据锁,而是...
    编程 发布于2024-11-07
  • 如何从 C++ 中的函数安全地返回数组?
    如何从 C++ 中的函数安全地返回数组?
    从 C 中的函数返回数组 尝试从 C 中的函数返回数组可能会导致意外行为,如以下代码所示片段:int* uni(int *a,int *b) { int c[10]; ... return c; }此函数尝试从函数返回本地数组 c。但是,当函数返回时,数组占用的内存将被释放,...
    编程 发布于2024-11-07
  • HTML5中如何将表格属性迁移到CSS?
    HTML5中如何将表格属性迁移到CSS?
    HTML5 表格属性转换Visual Studio 的 HTML5 验证功能将单元格填充、单元格间距、valign 和对齐属性标识为对表格元素无效。为了解决这个问题,HTML5 引入了 CSS 替代方案来控制表格的外观和间距。单元格填充:将 cellpadding 替换为应用于表格单元格的 CSS ...
    编程 发布于2024-11-07
  • 为什么不能在 C++ 中使用非常量变量定义数组大小?
    为什么不能在 C++ 中使用非常量变量定义数组大小?
    了解使用 Const Int 作为数组大小的限制在 C 中,使用 const int 作为数组大小受到以下限制某些限制。让我们深入研究一下为什么存在这些限制。考虑以下场景:允许:const int size = 2; int array[size] = {0}; // Compilation suc...
    编程 发布于2024-11-07
  • 如何在 MySQL WHERE 子句中指定不明确的“user_id”列?
    如何在 MySQL WHERE 子句中指定不明确的“user_id”列?
    解决 MySQL 'user_id' WHERE 子句中的歧义当处理共享列名的多个表时,MySQL 在使用时可能会遇到歧义WHERE 子句中的该列。这在错误消息“user_id”中很明显,其中 where 子句不明确。考虑示例查询:SELECT user.*, user_info.*...
    编程 发布于2024-11-07
  • 如何从 Pandas 中的函数高效创建多个新列?
    如何从 Pandas 中的函数高效创建多个新列?
    使用 Pandas 从函数创建多个新列在 Pandas 中,您可能会遇到需要根据应用于某个函数的自定义函数创建多个新列的情况现有专栏。该任务可能看起来很简单,但由于函数的预期返回类型,可能会出现意想不到的挑战。原始方法:分配给索引范围最初,您可能会尝试分配使用 df.ix[: ,10:16] = d...
    编程 发布于2024-11-07
  • 如何在 Go 中迭代地从切片中删除元素?
    如何在 Go 中迭代地从切片中删除元素?
    迭代地从切片中删除元素迭代切片时,由于移动而在循环中删除元素可能会很棘手后续元素。一种常见的错误方法是使用追加来删除元素,如下例所示:a := []string{"abc", "bbc", "aaa", "aoi", &...
    编程 发布于2024-11-07
  • 如何有效防止 C++ 中的内存泄漏:综合指南
    如何有效防止 C++ 中的内存泄漏:综合指南
    避免 C 中的内存泄漏:综合指南C 内存管理可能是一项艰巨的任务,潜在的内存泄漏潜伏在每个角落。为了减轻这些风险,必须遵循一组最佳实践。防止内存泄漏的一般技巧了解所有权: 确定谁负责释放内存。实施适当的清理机制以及时释放分配的资源。使用智能指针:考虑使用智能指针,例如 std::unique_ptr...
    编程 发布于2024-11-07
  • 使用html css和js的动画进行冒泡排序
    使用html css和js的动画进行冒泡排序
    代码 : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=d...
    编程 发布于2024-11-07

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3