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

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

pandas-profiling 可以在html动态交互页面中呈现如下统计信息:

  • 基础信息:类型、唯一值、缺失值

  • 分位数统计量:如最小值,Q1,中位数,Q3,最大值,范围,四分位数范围

  • 描述性统计量:均值、标准差、和、中位绝对偏差、变异系数、峰度、偏度

  • 最常出现的值

  • 直方图

  • 相关系数:高度相关的变量、斯皮尔曼和皮尔森矩阵

安装

pandas-profiling例子

这里我们使用 气象学会 的综合数据集,该数据集包含所有已知陨石着陆的信息。 由Javier de la Torre收集,提供了一个由34,513个陨石组成的XLS文件,其中包括以下字段:

我们先读取数据看看

生成一些实验数据

为了方便学习pandas_profiling库,我们生成一些缺失值、随机值、高度自相关等特点的信息。

输出分析报告

在notebook的Cell内输出dataframe的分析报告

具体我们看看详细的报告,注意图片中的Toggle Detail也是可以点击查看更详细的信息。

报告真的很详细美观,很适合用到数据探索阶段。

将报告输出到html文件中

有时候我们需要将分析报告分享给其他人,这时候我们就需要将报告输出为html文件方便其他人查看。

profiling对象行内显示

刚刚上面的pfr变量是profiling对象,可以直接在行内显示具体的报告信息

高级用法

pandas_profiling.ProfileReport()函数有以下参数,我们可以根据需要自定义

  • bins (int):直方图的列数(默认为10).

相关性设置:

  • check_correlation: 布尔型值,是否检验相关性,默认为True

  • correlation_threshold: 浮点值(值域0-1),该值用来设置判定两个变量之间是否为相关。默认阈值为0.9,在社科类中,这个参数可以用来诊断变量间的共线性问题

  • correlation_overrides: (list): Variable names not to be rejected because they are correlated (None by default).

  • check_recoded (boolean): 布尔型值,用来诊断记录间是否存在相关性,因为这种计算比较消耗计算能力,所以建议只在小样本量的情况下使用。

  • pool_size:整数型,并行加快计算,该参数默认与CPU的个数相等。

推荐阅读

【视频教程】python爬虫 | 文本分析 | 机器学习快速入门   

cufflinks: 让pandas拥有plotly的炫酷的动态可视化能力

使用Pandas、Jinja和WeasyPrint制作pdf报告

使用Pandas更好的做数据科学

使用Pandas更好的做数据科学(二)

少有人知的python数据科学库

folium:地图数据可视化库

学习编程遇到问题,该如何正确的提问?

100G 文本分析语料资源(免费下载)  

如何用Google Colab高效的学习Python

大神kennethreitz写出requests-html号称为人设计的解析库

flashtext:大规模文本数据清洗利器

如果想要获取更多例子,可以关注本公众号,

后台回复 20190506 获得本教程及扩展教程的notebook代码下载方式