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报告
大神kennethreitz写出requests-html号称为人设计的解析库
如果想要获取更多例子,可以关注本公众号,
后台回复 ‘ 20190506 ‘ 获得本教程及扩展教程的notebook代码下载方式