跳到主要内容10 个 Python 自动化探索性数据分析库推荐 | 极客日志PythonAI算法
10 个 Python 自动化探索性数据分析库推荐
本文介绍了 10 个用于自动化探索性数据分析的 Python 库,包括 D-Tale、Pandas-Profiling、Sweetviz、AutoViz、Dataprep、Klib、Dabl、SpeedML、DataTile 和 Edaviz。文章详细说明了各库的安装方式、核心功能、代码示例及适用场景。通过对比不同工具的特点,如报告生成速度、交互性、机器学习集成能力等,帮助读者根据实际需求选择合适的 EDA 工具,从而提升数据处理效率。
探索性数据分析(EDA)是数据科学模型开发和数据集研究的重要组成部分。在拿到一个新数据集时,首先需要花费大量时间进行 EDA 来研究数据集中内在的信息。自动化的 EDA Python 包可以用几行代码执行 EDA。本文整理了 10 个可以自动执行 EDA 并生成有关数据的见解的 Python 包,分析它们的功能及适用场景。
1. D-Tale
D-Tale 使用 Flask 作为后端、React 前端,并且可以与 Jupyter Notebook 和终端无缝集成。它支持 Pandas 的 DataFrame、Series、MultiIndex、DatetimeIndex 和 RangeIndex。
import dtale
import pandas as pd
dtale.show(pd.read_csv("titanic.csv"))
D-Tale 用一行代码就可以生成一个报告,其中包含数据集、相关性、图表和热图的总体总结,并突出显示缺失的值等。D-Tale 还可以为报告中的每个图表进行分析,图表支持交互操作,适合在本地快速查看数据分布和异常值。
2. Pandas-Profiling
Pandas-Profiling 可以生成 Pandas DataFrame 的概要报告。它扩展了 pandas DataFrame 的 df.profile_report() 方法,并且在大型数据集上工作得非常好,可以在几秒钟内创建报告。
pip install pandas-profiling
import pandas as pd
from pandas_profiling import ProfileReport
profile = ProfileReport(pd.read_csv('titanic.csv'), explorative=True)
profile.to_file("output.html")
该库生成的 HTML 报告非常详细,包含变量类型统计、相关性矩阵、缺失值分析和样本数据预览,非常适合快速了解数据结构。
3. Sweetviz
Sweetviz 是一个开源的 Python 库,只需要两行 Python 代码就可以生成漂亮的可视化图,将 EDA 作为一个 HTML 应用程序启动。Sweetviz 包是围绕快速可视化目标值和比较数据集构建的。
import pandas as pd
import sweetviz as sv
sweet_report = sv.analyze(pd.read_csv("titanic.csv"))
sweet_report.show_html('sweet_report.html')
Sweetviz 库生成的报告包含数据集、相关性、分类和数字特征关联等的总体总结,界面美观且加载速度快,适合向非技术人员展示数据概览。
4. AutoViz
AutoViz 包可以用一行代码自动可视化任何大小的数据集,并自动生成 HTML、Bokeh 等报告。用户可以与 AutoViz 包生成的 HTML 报告进行交互。
import pandas as pd
from autoviz.AutoViz_Class import AutoViz_Class
autoviz = AutoViz_Class().AutoViz('train.csv')
AutoViz 能够自动检测数据类型并选择合适的图表,支持处理大规模数据,适合需要快速生成可视化报告的场景。
5. Dataprep
Dataprep 是一个用于分析、准备和处理数据的开源 Python 包。DataPrep 构建在 Pandas 和 Dask DataFrame 之上,可以很容易地与其他 Python 库集成。
Dataprep 的运行速度在这 10 个包中较快,它在几秒钟内就可以为 Pandas/Dask DataFrame 生成报告。
from dataprep.datasets import load_dataset
from dataprep.eda import create_report
df = load_dataset("titanic.csv")
create_report(df).show_browser()
该库不仅提供 EDA 报告,还支持数据清洗建议,适合在数据预处理阶段使用。
6. Klib
Klib 是一个用于导入、清理、分析和预处理数据的 Python 库。
import klib
import pandas as pd
df = pd.read_csv('DATASET.csv')
klib.missingval_plot(df)
klib.corr_plot(df_cleaned, annot=False)
klib.dist_plot(df_cleaned['Win_Prob'])
klib.cat_plot(df, figsize=(50,15))
Klib 虽然提供了很多的分析函数,但对于每一个分析需要我们手动编写代码,所以只能说是半自动化的操作。但是如果我们需要更定制化的分析,它是非常方便的,适合对绘图细节有要求的开发者。
7. Dabl
Dabl 不太关注单个列的统计度量,而是更多地关注通过可视化提供快速概述,以及方便的机器学习预处理和模型搜索。
import pandas as pd
import dabl
df = pd.read_csv("titanic.csv")
dabl.plot(df, target_col="Survived")
dabl 中的 Plot() 函数可以通过绘制各种图来实现可视化,包括目标分布图、散点图、线性判别分析等。它特别适合快速评估机器学习任务的可行性。
8. SpeedML
SpeedML 是用于快速启动机器学习管道的 Python 包。SpeedML 整合了一些常用的 ML 包,包括 Pandas、Numpy、Sklearn、Xgboost 和 Matplotlib,所以说其实 SpeedML 不仅仅包含自动化 EDA 的功能。
SpeedML 官方说,使用它可以基于迭代进行开发,将编码时间缩短了 70%。
from speedml import Speedml
sml = Speedml('../input/train.csv', '../input/test.csv',
target = 'Survived', uid = 'PassengerId')
sml.train.head()
sml.plot.correlate()
sml.plot.distribute()
sml.plot.ordinal('Parch')
sml.plot.continuous('Age')
该库专注于简化机器学习流程,从数据加载到建模的一站式解决方案。
9. DataTile
DataTile(以前称为 Pandas-Summary)是一个开源的 Python 软件包,负责管理、汇总和可视化数据。DataTile 基本上是 Pandas DataFrame describe() 函数的扩展。
import pandas as pd
from datatile.summary.df import DataFrameSummary
df = pd.read_csv('titanic.csv')
dfs = DataFrameSummary(df)
dfs.summary()
它提供了比原生 Pandas 更丰富的统计信息摘要,适合快速查看数值型变量的分布情况。
10. Edaviz
Edaviz 是一个可以在 Jupyter Notebook 和 Jupyter Lab 中进行数据探索和可视化的 Python 库。它原本设计用于交互式数据探索,但后来被整合到其他生态系统中。这里提供一个简单的演示思路。
虽然部分功能可能已迁移或更新,但其核心思想在于降低数据探索的门槛,适合初学者理解数据关系。
总结
在本文中,我们介绍了 10 个自动探索性数据分析 Python 软件包,这些软件包可以在几行 Python 代码中生成数据摘要并进行可视化。通过自动化的工作可以节省很多时间。
- 如果需要快速生成 HTML 报告,推荐使用 Sweetviz 或 Pandas-Profiling。
- 如果需要进行交互式探索,D-Tale 是不错的选择。
- 如果侧重于机器学习管道搭建,SpeedML 或 Dabl 更为合适。
- 如果需要定制化绘图,Klib 提供了更多底层控制。
根据具体需求选择合适的工具,可以显著提升数据分析效率。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online