目 录CONTENT

文章目录

5个有用的Python脚本,用于自动化探索性数据分析

Administrator
2026-03-10 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://www.kdnuggets.com/5-useful-python-scripts-to-automate-exploratory-data-analysis

原文作者:Bala Priya C


5 Useful Python Scripts to Automate Exploratory Data Analysis
Image by Author

 

# 引言

 
作为一名数据科学家或分析师,您知道理解数据是每个成功项目的基础。在构建模型、创建仪表板或生成洞察之前,您需要了解您正在处理的数据。但探索性数据分析(EDA)非常令人烦恼,它重复且耗时。

对于每个新数据集,您可能需要编写几乎相同的代码来检查数据类型、计算统计数据、绘制分布图等等。您需要系统化的、自动化的方法来快速而全面地理解您的数据。本文将介绍五个旨在自动化数据探索中最重要和最耗时的方面的Python脚本。

 
📜 您可以在GitHub上找到这些脚本
 

# 1. 数据剖析

 

// 识别痛点

当您首次打开一个数据集时,您需要了解其基本特征。您编写代码来检查数据类型、计算唯一值、识别缺失数据、计算内存使用情况以及获取摘要统计信息。您对每一列都这样做,为每个新数据集生成相同的重复代码。仅此初始剖析对于复杂数据集来说可能就需要一个小时或更长时间。

 

// 回顾脚本的功能

自动生成数据集的完整剖析,包括数据类型、缺失值模式、基数分析、内存使用情况以及所有列的统计摘要。检测潜在问题,如高基数分类变量、常数列和数据类型不匹配。生成结构化报告,让您在几秒钟内全面了解数据。

 

// 解释工作原理

该脚本遍历每一列,确定其类型并计算相关统计信息:

  • 对于数值列,它计算均值、中位数、标准差、四分位数、偏度和峰度
  • 对于分类列,它识别唯一值、众数和频率分布

它会标记潜在的数据质量问题,例如缺失值超过50%的列、唯一值过多的分类列以及方差为零的列。所有结果都汇总到一个易于阅读的数据框中。

获取数据剖析脚本

 

# 2. 分析和可视化分布

 

// 识别痛点

理解数据的分布对于选择正确的转换和模型至关重要。您需要为数值特征绘制直方图、箱线图和密度曲线,为分类特征绘制条形图。手动生成这些可视化意味着为每个变量编写绘图代码、调整布局和管理多个图形窗口。对于包含数十个特征的数据集,这会变得非常麻烦。

 

// 回顾脚本的功能

为数据集中的所有特征生成全面的分布可视化。为数值特征创建带有核密度估计的直方图,绘制箱线图以显示异常值,为分类特征创建条形图,并绘制Q-Q图以评估正态性。检测并突出显示偏斜分布、多峰模式和潜在异常值。以清晰的网格布局组织所有图表,并自动调整大小。

 

// 解释工作原理

该脚本将数值列和分类列分开,然后为每种类型生成适当的可视化:

  • 对于数值特征,它创建子图,显示带有覆盖的核密度估计(KDE)曲线的直方图,并标注偏度和峰度值
  • 对于分类特征,它生成排序的条形图,显示值频率

该脚本会自动确定最佳的 bin 大小,处理异常值,并使用统计检验来标记与正态性显著不同的分布。所有可视化都以一致的样式生成,并可根据需要导出。

获取分布分析脚本

 

# 3. 探索相关性和关系

 

// 识别痛点

理解变量之间的关系至关重要但又很繁琐。您需要计算相关矩阵,为有前景的变量对创建散点图,识别多重共线性问题,并检测非线性关系。手动执行此操作需要生成数十张图表,计算各种相关系数,如 PearsonSpearmanKendall,并尝试在相关性热图中识别模式。这个过程很慢,而且您经常会错过重要的关系。

 

// 回顾脚本的功能

分析数据集中所有变量之间的关系。使用多种方法生成相关矩阵,为高度相关的变量对创建散点图,检测回归建模中的多重共线性问题,并识别线性相关性可能忽略的非线性关系。创建可视化,让您可以深入了解具体关系,并标记出完美相关性或冗余特征等潜在问题。

 

// 解释工作原理

该脚本使用 Pearson、Spearman 和 Kendall 相关性计算相关矩阵,以捕捉不同类型的关系。它生成一个带有注释的热图,突出显示强相关性,然后为超过相关性阈值的变量对创建详细的散点图。

对于多重共线性检测,它计算 方差膨胀因子(VIF)并识别具有高互相关性的变量组。该脚本还计算互信息得分,以捕获相关系数可能忽略的非线性关系。

获取相关性探索脚本

 

# 4. 检测和分析异常值

 

// 识别痛点

异常值可能会影响您的分析和模型,但识别它们需要多种方法。您需要使用不同的统计方法(例如,四分位距(IQR)、Z-score 和 Isolation Forests)来检查异常值,并使用箱线图和散点图来可视化它们。然后,您需要了解它们对数据的影响,并决定它们是真正的异常值还是数据错误。手动实现和比较多种异常值检测方法非常耗时且容易出错。

 

// 回顾脚本的功能

使用多种统计和机器学习方法检测异常值,比较不同方法的结果以识别一致的异常值,生成显示异常值位置和模式的可视化,并提供异常值特征的详细报告。帮助您了解异常值是孤立的数据点还是有意义的聚类的一部分,并估计它们对下游分析的潜在影响。

 

// 解释工作原理

该脚本应用多种异常值检测算法:

  • IQR 方法用于单变量异常值
  • 马氏距离 用于多变量异常值
  • Z-score 和修正 Z-score 用于统计异常值
  • Isolation Forest 用于复杂的异常模式

每种方法都会生成一组标记的点,脚本会创建一个共识分数,显示每个观测值被多少种方法标记。它生成并排的可视化比较检测方法,突出显示被多种方法标记的观测值,并提供异常值值的详细统计信息。该脚本还执行敏感性分析,显示异常值如何影响均值和相关性等关键统计数据。

获取异常值检测脚本

 

# 5. 分析缺失数据模式

 

// 识别痛点

缺失数据很少是随机的,理解缺失模式对于选择正确的处理策略至关重要。您需要识别哪些列有缺失数据,检测缺失模式,可视化缺失模式,并理解缺失值与其他变量之间的关系。手动执行此分析需要为每个数据集编写自定义代码和复杂的可视化技术。

 

// 回顾脚本的功能

分析整个数据集中的缺失数据模式。识别有缺失值的列,计算缺失率,并检测缺失模式中的相关性。然后,它评估缺失类型——完全随机缺失(MCAR)、随机缺失(MAR)或非随机缺失(MNAR)——并生成可视化显示缺失模式。根据检测到的模式提供处理策略的建议。

 

// 解释工作原理

该脚本创建一个二元缺失矩阵,指示值缺失的位置,然后分析此矩阵以检测模式。它计算缺失相关性以识别倾向于一起缺失的变量,使用统计检验来评估缺失机制,并生成热图和条形图显示缺失模式。对于每列缺失数据,它使用统计检验和相关性分析来检查缺失与变量之间的关系。

根据检测到的模式,该脚本推荐合适的插补策略:

  • MCAR 数值数据的均值/中位数
  • MAR 数据的预测插补
  • MNAR 数据的领域特定方法

获取缺失数据分析脚本

 

# 结论

 
这五个脚本解决了每个数据专业人员都面临的数据探索的核心挑战。

您可以独立使用每个脚本来执行特定的探索任务,或者将它们组合成一个完整的探索性数据分析管道。其结果是一种系统化的、可重现的数据探索方法,可以为每个项目节省数小时甚至数天的时间,同时确保您不会错过有关数据的关键见解。

祝您探索愉快!
 
 

Bala Priya C 是一位来自印度的开发人员和技术作家。她喜欢在数学、编程、数据科学和内容创作的交叉领域工作。她的兴趣和专业领域包括 DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编码和咖啡!目前,她正在通过撰写教程、操作指南、观点文章等来学习并将她的知识分享给开发者社区。Bala 还创建了引人入胜的资源概述和编码教程。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区