社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

实战 | Python自动生成PPT分析报告

数据挖掘与大数据分析 • 7 年前 • 1356 次点击  

原文:http://www.cnblogs.com/gasongjian/p/6481422.html

全文约 3821 字,读完可能需要 5 分钟。

文/JSong @2017.02.28

在数据分析里面有一句话是说,80%的时间要用于数据清洗和整理,而我觉得理想的状态应该是把更多的把时间花在数据背后的洞察当中。去年11月在简书占了个坑,说要自己写一个工具来解决,今天我来填坑了。

1、解决方案概述

  1. 工具包:https://github.com/gasongjian/reportgen

  2. 项目地址:https://github.com/gasongjian/,欢迎 star 或者 folk

  3. 软件依赖:python3(兼容python2,但中文部分需要手动修改一个第三方包的2行代码)

  4. 数据需求:调研数据,包括但不仅限于 问卷星原始数据、 问卷网原始数据

  5. 主要功能1: 自动生成概述性质的报告(ppt格式,针对每道题目给出频数统计,并绘制ppt图表)

  6. 主要功能2:自动交叉分析,并生成报告(自动卡方检验、TGI、CHI指标计算、简单结论提取等)

2、准备工作

依赖环境:

  1. python科学计算所需的包,建议直接安装anaconda(强烈推荐使用python3版本)

  2. 安装第三方包 python-pptx: 在cmd中输入:"pip install python-pptx"

  3. 安装report包: 下载report\report.py, 然后放在工作目录即可(省心点可以直接扔进 C:\Anaconda3\Lib\site-packages 中,这样在任何地方都能使用该工具包啦)

备注

py2.7版本的pptx包对中文支持有 bug, 请按照如下方式修改

  1. 打开文件 ".\pptx\chart\xmlwriter.py"

  2. 将大约1338行和1373行的 "escape(str(name))" 改为"escape(unicode(name))"

3、快速上手

【不懂或者不想学python3的请看这】

为了方便更多人使用,我给windows用户提供了一个很简单的使用方法,大家下载项目地址中的文件夹 reportgen[无python经验的下载]即可,使用说明也在其中,非常简单。这里也提供一个百度云盘地址:reportgen简易使用版本链接(密码:as84):

3.1 三行代码解决描述统计报告:

  1. import report as rpt

  2. #  数据编码和导入

  3. # 300_300_0.xls是问卷星的按文本数据,300_300_2.xls是问卷星的按序号数据.

  4. # 如果将他们放在".\\data\\"中,则文件名可以缺省,即:`data,code=rpt.wenjuanxing()`

  5. data,code=rpt.wenjuanxing(['300_300_0.xls','300_300_2.xls'])

  6. # 描述统计报告生成

  7. rpt.summary_chart(data,code,filename=u'调研报告初稿');

如上代码可以在。\out\文件夹下生成两个文件

  1. 调研报告初稿.pptx: 针对每个题目描述统计,支持单选题、多选题、排序题、矩阵单选题等

  2. 调研报告初稿.xlsx: 生成每个题目的统计数据,包括频数和占比

3.2 四行代码解决交叉统计报告

  1. import report as rpt

  2. #  数据编码和导入

  3. data,code=rpt.wenjuanxing()

  4. # 交叉统计报告生成(假设第一道题Q1是性别选择题)

  5. save_dstyle=['FE','TGI','CHI']#自由选择需要保存的指标(FE:期望频数等)

  6. rpt.cross_chart(data,code,cross_class='Q1',filename=u'性别差异分析',save_dstyle=save_dstyle);

如上代码可以在。\out\文件夹下生成5个文件

  1. 性别差异分析.pptx: 考虑每个题目在性别上的差异

  2. 性别差异分析_百分比.xlsx

  3. 性别差异分析_FE.xlsx

  4. 性别差异分析_TGI.xlsx

  5. 性别差异分析_CHI.xlsx

3.3 其他实用函数

  1. import report as rpt

  2. # 文件I/O

  3. data=rpt.read_data(filename)

  4. code=rpt.read_code(filename)

  5. rpt.save_data(data,filename,code)

  6. rpt.save_code(code,filename)

  7. data,code=rpt.wenjuanxing(filepath)# 编码问卷星的数据

  8. data,code=rpt.wenjuanwang(filepath)# 编码问卷网的数据

  9. # 数据统计函数

  10. t,t1=rpt.qtable(data,code,'Q1')# 单变量频数统计

  11. t,t1=rpt.qtable(data,code ,'Q1','Q2')# 双变量交叉统计

  12. # 数据分析函数

  13. cdata=rpt.contingency(fo)# 列联表分析

  14. rpt.gof_test(fo,fe)# 拟合优度检验

  15. rpt.chi2_test(fo,fe)# 卡方检验

  16. rpt.binomial_interval(p,n)# 计算比率的置信区间

  17. # 自动描述统计报告

  18. '''

  19. summary_qlist: 例如['Q1','Q2'],需要分析的问卷题目列表,缺省为code中所有的关键词

  20. template: 例如{'path':'mytemplate.pptx','layouts':[1,2]}, 缺省为pptx自带的模板

  21. '''

  22. rpt.summary_chart(data,code,filename=u'描述统计报告', summary_qlist=None,\

  23. max_column_chart=20,template=None)

  24. # 自动交叉统计报告

  25. '''

  26. cross_class: 需要交叉分析的题目,如:'Q1'

  27. cross_qlist: 例如['Q1','Q2'],需要分析的问卷题目列表,缺省为code中所有的关键词

  28. plt_dstyle: 绘制在ppt上使用的数据格式,缺省为百分比表,可以选择'TGI'等

  29. save_dstyle: 需要保存的数据,例如:['TGI','FO','TWI','CHI']

  30. template: 例如{'path':'mytemplate.pptx','layouts':[1,2]}, 缺省为pptx自带的模板

  31. '''

  32. rpt.cross_chart(data,code,cross_class,filename=u'交叉分析', cross_qlist=None,\

  33. delclass=None,plt_dstyle=None,cross_order=None, significance_test=False, \

  34. reverse_display=False,total_display=True,max_column_chart=20,save_dstyle=None,\

  35. template=None):


目前数据君的数据圈只能通过我邀请才能进,收费298永久


唯一的加入方式:


加我微信:seedata        


 转账298,先拉微信群,再邀请进小密圈


犹豫的、不懂的、咨询的不要加,加了也是僵尸,时间宝贵,你我都珍惜


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/raWjyFRQ79
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3003
 
1356 次点击