【Python基础】安利3个Python数据分析EDA神器!

来源:Python数据科学

作者:东哥起飞

EDA是数据分析必须的过程,用来查看变量统计特征,可以此为基础尝试做特征工程。东哥这次分享3个EDA神器,其实之前每一个都分享过,这次把这三个工具包汇总到一起来介绍。

1. Pandas_Profiling

这个属于三个中最轻便、简单的了。它可以快速生成报告,一览变量概况。首先,我们需要安装该软件包。

# 安装Jupyter扩展widget 
jupyter nbextension enable --py widgetsnbextension
# 或者通过conda安装
conda env create -n pandas-profiling
conda activate pandas-profiling
conda install -c conda-forge pandas-profiling
# 或者直接从源地址安装
pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip

安装成功后即可导入数据直接生成报告了。

import pandas as pdimport seaborn as snsmpg = sns.load_dataset('mpg')mpg.head()

from pandas_profiling import ProfileReportprofile = ProfileReport(mpg, title='MPG Pandas Profiling Report', explorative = True)profile

使用Pandas Profiling生成了一个快速的报告,具有很好的可视化效果。报告结果直接显示在notebook中,而不是在单独的文件中打开。

总共提供了六个部分:概述、变量、交互、相关性,缺失值和样本。

Pandas profiling的变量部分是完整的,它为每个变量都生成了详细的报告。

从上图可以看出,仅一个变量就有太多信息,比如可以获得描述性信息和分位数信息。

交互

交互部分我们可以获取两个数值变量之间的散点图。

相关性

可以获得两个变量之间的关系信息。

缺失值

可以获取每个变量的缺失值计数信息。

样本

可以显示了数据集中的样本行,用于了解数据。

2. Sweetviz

Sweetviz是另一个Python的开源代码包,仅用一行代码即可生成漂亮的EDA报告。与Pandas Profiling的区别在于它输出的是一个完全独立的HTML应用程序。

使用pip安装该软件包

pip install sweetviz

安装完成后,我们可以使用Sweetviz生成报告,下面尝试一下。

import sweetviz as sv# 可以选择目标特征my_report = sv.analyze(mpg, target_feat ='mpg')my_report.show_html()

从上图可以看到,Sweetviz报告生成的内容与之前的Pandas Profiling类似,但具有不同的UI。

Sweetviz不仅可以查看单变量的分布、统计特性,它还可以设置目标标量,将变量和目标变量进行关联分析。如上面报告最右侧,它获得了所有现有变量的数值关联和类别关联的相关性信息。

Sweetviz的优势不在于单个数据集上的EDA报告,而在于数据集的比较。

可以通过两种方式比较数据集:将其拆分(例如训练和测试数据集),或者使用一些过滤器对总体进行细分。

比如下面这个例子,有USA和NOT-USA两个数据集。

# 设置需要分析的变量
my_report = sv.compare_intra(mpg,mpg [“ origin”] ==“ usa”,[“ USA”,“ NOT-USA”],target_feat ='mpg')
my_report.show_html()

不需要敲太多的代码就可以让我们快速分析这些变量,这在EDA环节会减少很多工作量,而把时间留给变量的分析和筛选上。

Sweetviz的一些优势在于:

  • 分析有关目标值的数据集的能力

  • 两个数据集之间的比较能力

但也有一些缺点:

  • 变量之间没有可视化,例如散点图

  • 报告在另一个标签中打开

个人是比较喜欢Sweetviz的。

3. pandasGUI

PandasGUI与前面的两个不同,PandasGUI不会生成报告,而是生成一个GUI(图形用户界面)的数据框,我们可以使用它来更详细地分析我们的Dataframe。

首先,安装PandasGUI。

# pip安装pip install pandasgui# 或者通过源下载pip install git+https://github.com/adamerose/pandasgui.git

然后,运行几行代码试一下。

from pandasgui import show
# 部署GUI的数据集
gui = show(mpg)

在此GUI中,可以做很多事情,比如过滤、统计信息、在变量之间创建图表、以及重塑数据。这些操作可以根据需求拖动选项卡来完成。

比如像下面这个统计信息

最牛X的就是绘图器功能了。用它进行拖拽操作简直和excel没有啥区别了,操作难度和门槛几乎为零。

还可以通过创建新的数据透视表或者融合数据集来进行重塑。

然后,处理好的数据集可以直接导出成csv。

pandasGUI的一些优势在于:

  • 可以拖拽

  • 快速过滤数据

  • 快速绘图

缺点在于:

  • 没有完整的统计信息

  • 不能生成报告

4. 结论

Pandas Profiling、Sweetviz和PandasGUI都很不错,旨在简化我们的EDA处理。在不同的工作流程中,每个都有自己的优势和适用性,三个工具具体优势如下:

  • Pandas Profiling 适用于快速生成单个变量的分析。

  • Sweetviz 适用于数据集之间和目标变量之间的分析。

  • PandasGUI适用于具有手动拖放功能的深度分析。

参考:
https://github.com/adamerose/pandasgui
https://github.com/pandas-profiling/pandas-profiling
https://github.com/fbdesignpro/sweetviz
https://towardsdatascience.com/
(0)

相关推荐

  • Pandas与GUI界面的超强结合,爆赞!

    pandasgui安装与简单使用 根据作者的介绍,pandasgui是用于分析 Pandas DataFrames的GUI.这个属于第三方库,使用之前需要安装. pip install -i http ...

  • 像操作Excel一样玩Pandas,这款可视化神器太棒了

    Pandas这个库对Python来说太重要啦!因为它的出现,让Python进行数据分析如虎添翼,作为Python里面最最牛逼的库之一,它在数据处理和数据分析方面,拥有极大的优势,受到数据科学开发者的广 ...

  • pandas_profiling:生成动态交互的数据探索报告

    今天学到pandas的一个扩展库- pandas-profiling,该库可以从dataframe中生成报告文件.实际上df.describe()就是能实现类似的功能,但是对于数据分析初期的数据探索略 ...

  • 安利3个Python数据分析EDA神器!

    来源:Python数据科学 作者:东哥起飞 ★文末赠送5本新书★ <趣学Python算法100例>欢迎参与 EDA是数据分析必须的过程,用来查看变量统计特征,可以此为基础尝试做特征工程.东 ...

  • Python做数据分析有哪些优势?Python基础!

    众所周知,可以用作数据分析的语言有很多,包含Python.R语言等,而且Python被誉为数据分析的一大利器,更是该领域的首选语言,那么用Python做数据分析有哪些优势呢?跟着小编往下看. 第一.P ...

  • 【利用python进行数据分析——基础篇】利用Python处理和分析Excel表中数据实战

    作为一个学习用Python进行数据分析的新手来说,通过本文来记录分享一些我在用Python中的pandas.numpy来分析Excel表中数据的数据清洗和整理的工作,目的是熟悉numpy以及panda ...

  • 数据分析之python基础入门(上)

    前言 上一篇文章我主要写的是关于数据分析师这个岗位的一些介绍,并且介绍了一些数据分析可能会用到的工具包括:sql.powerbi.python.R语言.Excel等等. 我们很多的初学者很容易把数据分 ...

  • Python基础 数据分析 十四章学习路线

    <Python基础+数据科学训练营> 帮你夯实人工智能和数据科学的python代码基础,两周快速入门. 零基础入门 从环境配置+基础语法开始讲起,帮你构建最基础的Python体系,让你快速 ...

  • 零基础学python,看完这篇文章,你的python基础就差不多了!

    Python基础语法 1. 认识Python 1.1 Python 简介 Python 的创始人为吉多·范罗苏姆(Guido van Rossum). Python 的设计目标: 一门 简单直观的语言 ...

  • Python可以开发IOS吗?Python基础!

    在大家的印象中,Python是一门应用领域非常广泛的编程语言,可以说无所不能,那么Python可以开发IOS或安卓APP吗?我想很多人都好奇这个问题,接下来我们一起来看看. 当然可以,Python是可 ...

  • 什么是Python表达式?Python基础入门

    初学Python的时候,大家都会接触到各种专业术语,比如说表达式.语句等,那么你知道什么是Python表达式吗?Python表达式由什么构成呢?想要知道,这篇文章你一定要看. Python表达式由什么 ...

  • 如何区分Python语句块?Python基础教程!

    说起Python语句块,大家有一个非常疑惑的问题,那就是Python如何区分不同的语句块?关于这个问题,小编通过下面这篇文章为大家介绍一下. Python是通过缩进格式来区分不同语句块的.Python ...