探索性数据分析是数据科学模型开发和数据集研究的重要组成部分之一。在拿到一个新数据集时首先就需要花费大量时间进行eda来研究数据集中内在的信息。自动化的eda python包可以用几行python代码执行eda。
在本文中整理了10个可以自动执行eda并生成有关数据的见解的python包,看看他们都有什么功能,能在多大程度上帮我们自动化解决eda的需求。
dtale
pandas-profiling
sweetviz
autoviz
dataprep
klib
dabl
speedml
datatile
edaviz
1、d-tale
d-tale使用flask作为后端、react前端并且可以与ipython notebook和终端无缝集成。d-tale可以支持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的概要报告。panda-profiling扩展了pandas dataframe df.profile_report(),并且在大型数据集上工作得非常好,它可以在几秒钟内创建报告。#install the below libaries before importing import pandas as pd from pandas_profiling import profilereport #eda using pandas-profiling profile = profilereport(pd.read_csv('titanic.csv'), explorative=true) #saving results to a html file profile.to_file(output.html)
3、sweetviz sweetviz是一个开源的python库,只需要两行python代码就可以生成漂亮的可视化图,将eda(探索性数据分析)作为一个html应用程序启动。sweetviz包是围绕快速可视化目标值和比较数据集构建的。
import pandas as pd import sweetviz as sv #eda using autoviz sweet_report = sv.analyze(pd.read_csv(titanic.csv)) #saving results to html file 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 #eda using autoviz autoviz = autoviz_class().autoviz('train.csv')
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()
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))
klibe虽然提供了很多的分析函数,但是对于每一个分析需要我们手动的编写代码,所以只能说是半自动化的操作,但是如果我们需要更定制化的分析,他是非常方便的。
7、dabl
dabl不太关注单个列的统计度量,而是更多地关注通过可视化提供快速概述,以及方便的机器学习预处理和模型搜索。
dabl中的plot()函数可以通过绘制各种图来实现可视化,包括:
目标分布图
散点图
线性判别分析
import pandas as pd import dabl df = pd.read_csv(titanic.csv) dabl.plot(df, target_col=survived)
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.ordinal('sibsp')
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()
10、edaviz
edaviz是一个可以在jupyter notebook和jupyter lab中进行数据探索和可视化的python库,他本来是非常好用的,但是后来被砖厂(databricks)收购并且整合到bamboolib 中,所以这里就简单的给个演示。
总结 在本文中,我们介绍了10个自动探索性数据分析python软件包,这些软件包可以在几行python代码中生成数据摘要并进行可视化。通过自动化的工作可以节省我们的很多时间。 dataprep是我最常用的eda包,autoviz和d-table也是不错的选择,如果你需要定制化分析可以使用klib,speedml整合的东西比较多,单独使用它啊进行eda分析不是特别的适用,其他的包可以根据个人喜好选择,其实都还是很好用的,最后edaviz就不要考虑了,因为已经不开源了。
铭普举行户外生态大会 “户外”成发展战略
最新2017中国专利统计数据出炉:国家电网第一,华为第二
解析存储跨中心双活中,数据同步逻辑错误的解决方案
超声波液位测量是现代工业化测量最重要的测量方法
铜缆的双绞线要测电阻的原因是什么
10个Python自动探索性数据分析神库!
DMM VR平台最畅销的作品销售额超过了1亿日元
如何使用倾角传感器
荣耀和华为有什么不同?看完这篇文章就明白了
LED的分类与led封装选型的详细介绍
英特尔新推处理器架构 强调芯片降温问题
揭秘三一重工Witsight工业大数据云平台
车载充电器设计的各种拓扑结构和技术分析
机器人最主要的零器件
防雷接地的方法图解_防雷接地施工方案_防雷接地电阻标准
智能工厂的四个层次是什么
CERTIUM Locate测向定位系统将服务于HungaroControl
美国市场对PCB组装需求的需求怎么样
比特币存在的意义是什么为什么我们需要比特币
华为P10/Plus价格曝光,搭载麒麟960价格贵的离谱