京公网安备 11010802034615号
经营许可证编号:京B2-20210330
CDA数据分析师 出品
作者: tukey
数据科学爱好者知道,在将原始数据输入到机器学习模型之前,需要对其进行大量数据预处理。为此,需要遵循一系列标准来准备数据,具体取决于手头问题的类型(回归或分类)。这个过程的一个主要部分涉及以所有可能的方式评估数据集,以找到有价值的相关性(彼此和目标之间的特征依赖性)并排除噪声(不一致或异常值,即不合格的数据点)。要探索任何数据集,Python 是可用的最强大的数据分析工具之一,此外,还有同样强大的 Python 库可以更好地可视化数据。
因此,为了使数据更有意义或从可用数据中提取更多价值,必须快速解释和分析它。这是Python数据可视化库通过生成图形表示和让数据说话所擅长的地方。通过这种方式,我们可以发现大量数据背后所有可能的趋势和模式。
今天,数据科学和机器学习不仅仅适用于具有强大计算机科学背景的人。相反,欢迎来自不同行业的专业人士对数据有着相同的热情,尽管他们具有一些统计知识,但这种趋势正在增加。这就是为什么来自不同背景和教育背景的人倾向于尝试数据科学和人工智能必须提供的东西。
但是对于刚刚开始使用机器学习的初学者来说,理解数据的选择太多是具有挑战性的,有时甚至是压倒性的。我们都希望我们的数据看起来很漂亮并且可以展示,以便更快地做出决策。总体而言,EDA可能是一个耗时的过程,因为我们仔细查看多个图以找出哪些特征是重要的并对结果产生重大影响。此外,我们寻找方法来处理缺失值和/或异常值、修复数据集中的不平衡以 及许多此类具有挑战性的任务。因此,在选择满足 EDA 需求的最佳库时,这是一个艰难的选择。因此,对于任何开始机器学习之旅的人来说,从自动化 EDA 库开始都是一种很好的学习体验。这些库提供了良好的数据整体视图,并且易于使用。只需几行简单的 Python 代码,这些库就可以节省时间,并使新手能够更加专注于了解如何使用这些不同的图来理解数据。但是,初学者肯定需要对这些库生成的图有基本的了解。
在本文中,我们将为初学者讨论三个有趣的自动EDA Python 库。对于这个初学者友好的教程,我们将使用来自sklearn 的内置“iris”数据集。
我们将首先导入包和库
#loading the datasetfrom sklearn import datasets import pandas as pd print("pandas:",pd. version )
pandas: 1.3.2
data = datasets.load_iris()df = pd.DataFrame(data.data,columns=data.feature_names) df['target'] = pd.Series(data.target)df.head()
如果我们不使用 AutoEDA,这里有一个通常用于 EDA 的命令列表,用于打印有关 DataFrame/数据集的不同信息(不一定按相同的顺序)。
查看我们必须使用多少命令才能在数据中找到洞察力。AutoEDA 库可以通过几行 Python 代码快速完成所有这些以及更多工作。但在我们开始之前,让我们先检查安装的 Python 版本,因为这些库需要 Python >=3.6。要获取版本信息,请在 Colab 中使用以下命令。
# python versionimport sys sys.version
'3.7.6 (default, Jan 8 2020, 19:59:22) n[GCC 7.3.0]'
确认好了符合条件的Python 版本,现在就可以自动进行EDA探索数据分析。
01、Pandas Profiling 3.0.0
import pandas_profiling print("pandas_profiling:",pandas_profiling. version )
pandas_profiling: 3.0.0
从报告中,初学者可以很容易地理解 iris 数据集中有 5 个变量——4 个数字变量,结果变量是分类变量。此外,数据集中有 150 个样本并且没有缺失值。
#Generating PandasProfiling Reportreport = pandas_profiling.ProfileReport(df) report
02、Sweetviz 2.1.3
这也是一个开源 Python 库,仅使用两行代码即可执行深入空格的 EDA。该库为数据集生成的报告以 .html 文件形式提供,可以在任何浏览器中打开。使用 Sweetviz,我们可以检查数据集特征如何与目标值相关联。
可视化测试和训练数据并比较它们。我们可以使用analyze()、compare() 或compare_intra() 来评估数据并生成报告绘制数值和分类变量的相关性。
总结有关缺失值、重复数据条目和频繁条目的信息以及数值分析,即解释统计值与前面的部分类似,我们将首先导入 pandas 来读取和处理数据集。
接下来,我们只需导入 sweetviz 来探索数据。
import sweetviz as sv print("sweetviz :",sv. version )
sweetviz : 2.1.3
这就是经典的的 Sweetviz 报告的样式
#Generating Sweetviz reportreport = sv.analyze(df)report.show_html("iris_EDA_report.html") # specify a name for the report
| | [ 0%] 00:00 -> (? left)Report iris_EDA_report.html was generated! NOTEBOOK/COLAB USERS: the web browser MAY not pop
生成的这些 .html 报告您可以在当前目录下找到,然后可以在浏览器中打开报告。
03、AutoViz 0.0.83
另一个开源 Python EDA 库,只需一行代码即可快速分析任何数据。
# pip install autoviz# pip install wordcloud
from autoviz.AutoViz_Class import AutoViz_ClassAV = AutoViz_Class()
Imported AutoViz_Class version: 0.0.84. Call using: AV = AutoViz_Class()AV.AutoViz(filename, sep=',', depVar='', dfte=None, header=0, verbose=0,lowess=False,chart_format='svg',max_rows_analyzed=150000,max_cols Note: verbose=0 or 1 generates charts and displays them in your local Jupyter notebook.verbose=2 does not show plot but creates them and saves them in AutoViz_Plots directory
由于我们使用的是库中的数据集,因此我们使用 'dfte' 选项而不是 EDA 的文件名。
#Generating AutoViz Report #this is the default command when using a file for the datasetfilename = "" sep = ","dft = AV.AutoViz( filename,sep=",",
depVar="", dfte=None, header=0, verbose=0, lowess=False, chart_format="svg",max_rows_analyzed=150000,max_cols_analyzed=30,)
Dataname input must be a filename with path to that file or a Dataframe Not able to read or load file. Please check your inputs and try again...
#Generating AutoViz Reportfilename = "" # empty string ("") as filename since no file is being used for the datasep = ","dft = AV.AutoViz( '',sep=",",depVar="", dfte=df, header=0,verbose=0, lowess=False, chart_format="svg",max_rows_analyzed=150000,max_cols_analyzed=30,
Shape of your Data Set loaded: (150, 5)############## C L A S S I F Y I N G V A R I A B L E S ####################Classifying variables in data set...Number of Numeric Columns = 4Number of Integer-Categorical Columns = 1 Number of String-Categorical Columns = 0 Number of Factor-Categorical Columns = 0 Number of String-Boolean Columns = 0 Number of Numeric-Boolean Columns = 0 Number of Discrete String Columns = 0 Number of NLP String Columns = 0Number of Date Time Columns = 0 Number of ID Columns = 0Number of Columns to Delete = 05 Predictors classified...This does not include the Target column(s)No variables removed since no ID or low-information variables found in data set Number of All Scatter Plots = 10
depVar="", dfte=None, header=0, verbose=0, lowess=False, chart_format="svg",max_rows_analyzed=150000,max_cols_analyzed=30,)
Dataname input must be a filename with path to that file or a Dataframe Not able to read or load file. Please check your inputs and try again...
#Generating AutoViz Reportfilename = "" # empty string ("") as filename since no file is being used for the datasep = ","dft = AV.AutoViz( '',sep=",",depVar="", dfte=df, header=0,verbose=0, lowess=False, chart_format="svg",max_rows_analyzed=150000,max_cols_analyzed=30,
Shape of your Data Set loaded: (150, 5)############## C L A S S I F Y I N G V A R I A B L E S ####################Classifying variables in data set...Number of Numeric Columns = 4Number of Integer-Categorical Columns = 1 Number of String-Categorical Columns = 0 Number of Factor-Categorical Columns = 0 Number of String-Boolean Columns = 0 Number of Numeric-Boolean Columns = 0 Number of Discrete String Columns = 0 Number of NLP String Columns = 0Number of Date Time Columns = 0 Number of ID Columns = 0Number of Columns to Delete = 05 Predictors classified...This does not include the Target column(s)No variables removed since no ID or low-information variables found in data set Number of All Scatter Plots = 10
Number of Columns to Delete = 05 Predictors classified...This does not include the Target column(s)No variables removed since no ID or low-information variables found in data set Number of All Scatter Plots = 10
Time to run AutoViz (in seconds) = 6.979###################### VISUALIZATION Completed ########################
AutoViz 报告包括有关数据集形状的信息以及所有可能的图表,包括条形图、小提琴图、相关矩阵(热图)、配对图等。所有这些信息与一行代码肯定对任何初学者都有用。
因此,我们使用三个 AutoEDA 库以最少的代码自动化了一个小数据集的数据分析。以上所有代码都可以在原文链接中访问。
结语
从初学者的⻆度来看,Pandas Profiling、Sweetviz 和 AutoViz 似乎是最简单的生成报告以及呈现数据集洞察力的工具。在开始做数据探索时,我经常使用这些库以最少的代码快速发现有趣的数据规律和趋势。希望对你有用!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在用户运营与产品增长体系中,留存是衡量产品真实价值与用户粘性的核心标尺,也是决定用户生命周期价值、获客投产比的底层因素。 ...
2026-07-23 很多数据分析师精通Excel、SQL、Python等工具,但当被问到“面对一个具体的业务问题,该用什么分析方法”“描述性分析和诊断 ...
2026-07-23【核心关键词】埋点、产品、互联网、数据库、决策、数据分析、产品经理、商业模式、移动互联网、指标体系、运营模块、大数据平 ...
2026-07-22在高并发、大数据量的业务系统中,单表数据量达到千万级甚至亿级后,会出现查询性能骤降、索引维护成本飙升、存储扩容困难等问题 ...
2026-07-22 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-22在金融风控、企业运营、行业研究等数据分析场景中,大量数据以面板数据形态存在:例如多家分支机构连续多个季度的风险指标、多位 ...
2026-07-21 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-07-21一、活动介绍 2026暑期CDA备考冲刺季,为想利用假期拿证的你量身打造。考点胶囊内容搭配多重硬核福利,让你在旅行、实习、居家 ...
2026-07-21金融行业的运营风险贯穿业务全流程,涵盖交易欺诈、操作违规、流程漏洞、合规偏差、客户信用异常等多元场景,是银行、保险、证券 ...
2026-07-17财产保险作为金融行业的核心板块,涵盖车险、家财险、责任险、企财险等多元品类,是个人与企业抵御财产风险、经营风险的重要保障 ...
2026-07-17 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-07-17【核心关键词】模块、餐饮、客户、门店、企业、订单、供应链、多样化、产品、生产计划、数据分析、生产管理、物料管理、业务分 ...
2026-07-16在数字化分析时代,原始数据本身不具备业务价值,只有通过科学的统计学方法加工、拆解、验证与解读,才能挖掘数据背后的规律、差 ...
2026-07-16 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-07-16在描述性统计分析、数据预处理、异常值排查与多组数据分布对比工作中,箱线图(Box Plot)是应用最广泛的可视化与统计工具之一。 ...
2026-07-15在企业数据存储、业务统计与数据分析工作中,绝大多数业务数据都带有时间维度属性,例如订单创建时间、用户注册时间、支付完成时 ...
2026-07-15 很多数据分析师拿到数据就开始清洗、建模,但当被问到“这批数据属于什么类型——结构化还是非结构化?分类变量还是数值变量 ...
2026-07-15【核心关键词】产品、经营、客户、调研、销售额、宏观、会计行业、客户满意度、发展趋势、经营状况、数据分析、竞争对手、数据 ...
2026-07-14问卷调查是市场调研、用户研究、社会调研与产品分析的核心数据采集方式。问卷数据大多以分类数据为主,例如用户性别、年龄分层、 ...
2026-07-14 很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-07-14