python 生成 pptx 分析报告的工具包:reportgen

v0.1.8 更新
这段时间,我对进行了大工程量的修改和更新 。将之前在各个文章中出现的函数进行了封装,同时也对现有工具包的一些逻辑进行了调整 。
1、 简介
的底层是 pptx 文件生成接口,它能非常方便的将等数据导出为pptx上的图表 。你可以自定义图表的类型(条形图、饼图、折线图等),也可以全部交给工具包来自动化 。另外不排除后期会增加其他文件形式(如可交互的 html 等)接口的可能性,但短期内估计比较难 。
在这些接口上是一些辅助函数,包括特征类型的判断、中缺少的预处理函数、一些特殊的度量函数、模型评估报告函数、关联分析函数等 。工具包的愿景是对数据的自动分析,自动出报告,这期间缺乏的函数我都可能加进去 。这次更新,主要就是完善了这一层 。
工具包的最外层就是各类数据的分析报告生成 。目前已经完成的是问卷型数据和通用性数据 。其中问卷型数据已经很完善,基本只需要修bug了,单独作为一个子包放在 中,大家可以. as ques 来使用 。至于通用性数据,目前已经完成了第一步,即描述统计型的分析报告,大家可以用rpt. 来实现 。第二步准备实现给定目标变量后的分析,包含交叉分析、各特征的重要性、监督学习模型等 。
另外,这次我放了一些案例在上,用于大家下载后的测试和学习用,网址是
2、通用数据的分析
在这个分析报告中,我会对数据的每一个字段进行分析,判断它们的类型,然后画出合适的图表 。对于因子变量,自动绘制柱状图或条形图;对于数值型变量,自动绘制出拟合的分布图;对于一般的文本,自动绘制词云 。同时也会给出一个统计表格,内含各个变量的场景统计数据,如最大值、最小值、均值、标准差、唯一数个数、缺失率等 。下面是一个例子,代码和数据可在我的中寻找 。
import pandas as pdimport reportgen as rpt # 数据导入 # 数据的网址:https://github.com/gasongjian/reportgen/tree/master/example/datasets/LendingClub_Sample.xlsx data=http://www.kingceram.com/post/pd.read_excel('.//datasets//LendingClub_Sample.xlsx') # 数据预览 rpt.AnalysisReport(data,filename='LendingClub 数据预览');
它会生成如下 pptx 文件
另外这里有一些过程函数也推荐给大家
特征统计分析
# 返回各个特征的数据类型var_type=rpt.type_of_var(data)#返回一个统计表格,内含数据各个特征的一些统计值summary=rpt.describe(data)
数据预处理
# 只作工具包测试,所以不区分训练集和测试集y=data['target']X=data.drop(['target'],axis=1) categorical_var=list(set(X.columns[X.apply(pd.Series.nunique)<30])|set(X.select_dtypes(include=['O']).columns)) continuous_var=list(set(X.columns)-set(categorical_var)) # ===========【WOE 编码】============= woe=rpt.preprocessing.WeightOfEvidence(categorical_features=categorical_var,encoder_na=False) X=woe.fit_transform(X,y) # ===========【离散:卡方分箱】============= dis=rpt.preprocessing.Discretization(continous_features=continuous_var) X2=dis.fit_transform(X,y)
信息论相关度量函数
# 离散因子变量的熵rpt.metrics.entropy.entropy(p)# 连续数值变量的熵(基于k近邻算法的近似估计)rpt.metrics.entropyc.kl_div(p,q)
机器学习模型辅助建模函数