把时间还给洞察,且看PPT调研报告自动生成攻略
文/JSong @2017.02.28
在数据分析里面有一句话是说,80%的时间要用于数据清洗和整理,而我觉得理想的状态应该是把更多的把时间花在数据背后的洞察当中。去年11月在简书占了个坑,说要自己写一个工具来解决,今天我来填坑了。
1、解决方案概述
- 工具包:reportgen
- 项目地址:github,欢迎
star
或者folk
- 软件依赖:python3(兼容python2,但中文部分需要手动修改一个第三方包的2行代码)
- 数据需求:调研数据,包括但不仅限于
问卷星
原始数据、问卷网
原始数据 - 主要功能1: 自动生成概述性质的报告(ppt格式,针对每道题目给出频数统计,并绘制ppt图表)
- 主要功能2:自动交叉分析,并生成报告(自动卡方检验、TGI、CHI指标计算、简单结论提取等)
2、准备工作
依赖环境:
- python科学计算所需的包,建议直接安装anaconda(强烈推荐使用python3版本)
- 安装第三方包
python-pptx
: 在cmd中输入:"pip install python-pptx" - 安装report包: 下载report\report.py, 然后放在工作目录即可(省心点可以直接扔进 C:\Anaconda3\Lib\site-packages 中,这样在任何地方都能使用该工具包啦)
备注
py2.7版本的pptx包对中文支持有 bug, 请按照如下方式修改
- 打开文件 ".\pptx\chart\xmlwriter.py"
- 将大约1338行和1373行的 "escape(str(name))" 改为"escape(unicode(name))"
3、快速上手
【不懂或者不想学python3的请看这】
为了方便更多人使用,我给windows用户提供了一个很简单的使用方法,大家下载项目地址中的文件夹
reportgen[无python经验的下载]
即可,使用说明也在其中,非常简单。这里也提供一个百度云盘地址:reportgen简易使用版本链接(密码: as84): https://pan.baidu.com/s/1dEPT72p
3.1 三行代码解决描述统计报告:
import report as rpt
# 数据编码和导入
# 300_300_0.xls是问卷星的按文本数据,300_300_2.xls是问卷星的按序号数据.
# 如果将他们放在“.\\data\\”中,则文件名可以缺省,即:`data,code=rpt.wenjuanxing()`
data,code=rpt.wenjuanxing(['300_300_0.xls','300_300_2.xls'])
# 描述统计报告生成
rpt.summary_chart(data,code,filename=u'调研报告初稿');
如上代码可以在.\out\文件夹下生成两个文件
调研报告初稿.pptx
: 针对每个题目描述统计,支持单选题、多选题、排序题、矩阵单选题等调研报告初稿.xlsx
: 生成每个题目的统计数据,包括频数和占比
3.2 四行代码解决交叉统计报告
import report as rpt
# 数据编码和导入
data,code=rpt.wenjuanxing()
# 交叉统计报告生成(假设第一道题Q1是性别选择题)
save_dstyle=['FE','TGI','CHI']#自由选择需要保存的指标(FE:期望频数等)
rpt.cross_chart(data,code,cross_class='Q1',filename=u'性别差异分析',save_dstyle=save_dstyle);
如上代码可以在.\out\文件夹下生成5个文件
性别差异分析.pptx
: 考虑每个题目在性别上的差异性别差异分析_百分比.xlsx
:性别差异分析_FE.xlsx
:性别差异分析_TGI.xlsx
:性别差异分析_CHI.xlsx
:
3.3 其他实用函数
import report as rpt
# 文件I/O
data=rpt.read_data(filename)
code=rpt.read_code(filename)
rpt.save_data(data,filename,code)
rpt.save_code(code,filename)
data,code=rpt.wenjuanxing(filepath)# 编码问卷星的数据
data,code=rpt.wenjuanwang(filepath)# 编码问卷网的数据
# 数据统计函数
t,t1=rpt.qtable(data,code,'Q1')# 单变量频数统计
t,t1=rpt.qtable(data,code,'Q1','Q2')# 双变量交叉统计
# 数据分析函数
cdata=rpt.contingency(fo)# 列联表分析
rpt.gof_test(fo,fe)# 拟合优度检验
rpt.chi2_test(fo,fe)# 卡方检验
rpt.binomial_interval(p,n)# 计算比率的置信区间
# 自动描述统计报告
'''
summary_qlist: 例如['Q1','Q2'],需要分析的问卷题目列表,缺省为code中所有的关键词
template: 例如{'path':'mytemplate.pptx','layouts':[1,2]}, 缺省为pptx自带的模板
'''
rpt.summary_chart(data,code,filename=u'描述统计报告', summary_qlist=None,\
max_column_chart=20,template=None)
# 自动交叉统计报告
'''
cross_class: 需要交叉分析的题目,如:'Q1'
cross_qlist: 例如['Q1','Q2'],需要分析的问卷题目列表,缺省为code中所有的关键词
plt_dstyle: 绘制在ppt上使用的数据格式,缺省为百分比表,可以选择'TGI'等
save_dstyle: 需要保存的数据,例如:['TGI','FO','TWI','CHI']
template: 例如{'path':'mytemplate.pptx','layouts':[1,2]}, 缺省为pptx自带的模板
'''
rpt.cross_chart(data,code,cross_class,filename=u'交叉分析', cross_qlist=None,\
delclass=None,plt_dstyle=None,cross_order=None, significance_test=False, \
reverse_display=False,total_display=True,max_column_chart=20,save_dstyle=None,\
template=None):
END
若您觉得感兴趣,请点击“喜欢”;
若您用的舒服,请分享给其他人;
把时间还给洞察,且看PPT调研报告自动生成攻略的更多相关文章
- TSN(时间敏感网络)测试、仿真、分析平台应用攻略
前言 在汽车领域,近几年车内网络通讯方式的变革诉求,期望能够有更高的数据传输速率,以及保证实时性的通讯方式引入.例如对于ADAS而言,传统的CAN总线已经远远不能满足其对通讯的要求,而基于车载以太网的 ...
- mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间
mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间,我们在mysql里面他封装了一个内置的时间戳转化的函数,比如我们现在的时间戳是:1458536709 ,"%Y-%m-%d&quo ...
- Beta版本——用户试用与调研报告
1 引言 1.1 系统概述 毕设导师智能分配系统是一个用来简化传统手工匹配繁琐操作的系统.本系统将学生报志愿.系负责人收集整理数据.相关人员进行手工分配.反馈选择结果等繁琐的操作转移到线上.把毕设 ...
- CVer想知道的都在这里了,一起分析下《中国计算机视觉人才调研报告》吧!
最近闲来无事,老潘以一名普通算法工程师的角度,结合自身以及周围人的情况,理性也感性地分析一下极市平台前些天发布的2020年度中国计算机视觉人才调研报告. 以下的"计算机视觉人才"简 ...
- 结对开发:7-magic用户调研报告
用户调研报告 班级 信1201-2班 学号 20122929 姓名 崔乐乐 项目名称:7-magic 调研时间: 2015/4/14 调研主题:7-magic游戏的用户需求度调研 ...
- 极客时间-左耳听风-程序员攻略-Linux系统、内存和网络
程序员练级攻略:Linux系统.内存和网络 Linux 系统相关 Red Hat Enterprise Linux 文档 . Linux Insides ,GitHub 上的一个开源电子书,其中讲述了 ...
- 极客时间-左耳听风-程序员攻略-UI/UX设计
程序员练级攻略:UI/UX设计 学习设计新手, 7 steps to become a UI/UX designer 学习设计的一些原则和套路,如配色.平衡.排版.一致性等. 用户体验的 4D 步骤- ...
- 密室经典逃脱N部--考验你的智力!据说全球没几人走出去!不要看攻略!【工作之余也来休闲一下】
密室经典逃脱N部-考验你的智力!据说全球没几人走出去!不要看攻略![工作之余也来休闲一下] 更多经典逃脱尽在:点击进入更多经典逃脱 测试你的反映速度:躲避小红球 测试你对鼠标的控制力 叫美女起床 ↓↓ ...
- 三点经验:长时间运行函数需要随时发射信号报告进度,以及设置bool变量随时可以退出,每做一步操作必须及时记录和处理相关信息
三点经验:长时间运行函数需要随时发射信号报告进度,以及设置bool变量随时可以退出,每做一步操作必须及时记录和处理相关信息 不能到最后一起处理,否则万一中间出错了,这个记录状态就全部都乱了.
随机推荐
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- Reactive 网络状态 Activity indicator view
转动属性:Animating RAC(self.searchActivity, hidden) = [self.m_viewModel.m_searchCommand.executing not];
- JMeter 连接数据库报错No suitable driver found for jdbc:xxxxxxxxx
添加JDBC Connection Configuration 和 JDBC Request 组件,添加相关信息 注意两个组件里面输入的Variable Name 必须一致 运行查看结果树出现如下错误 ...
- JTree实例
JTree实例 private void createTreeByXdDdt() { DefaultComboBoxModel boxModel = (DefaultComboBoxModel) cm ...
- ThinkPHP--IS_AJAX
增加IS_GET,IS_POST,IS_PUT,IS_DELETE,IS_AJAX常量,方便除控制器外的地方判断方法,Action类的isGet isPost等方法暂时保留,但不建议使用.
- android 快捷技巧
快捷方式 <!--[if !supportLists]-->0. Ctrl + 1 (快速修复) <!--[if !supportLists]-->1. Ctrl + D (删 ...
- Android自定义控件系列(四)—底部菜单(下)
转载请注明出处:http://www.cnblogs.com/landptf/p/6290862.html 在app中经常会用到底部菜单的控件,每次都需要写好多代码,今天我们用到了前几篇博客里的控件来 ...
- 30万奖金!还带你奔赴加拿大相约KDD!?阿里聚安全算法挑战赛带你飞起!
KDD(Knowledge Discovery and Data Mining,知识发现与数据挖掘)会议,作为数据挖掘届的顶会,一直是算法爱好者心中的圣地麦加. 想去?有点难. 给你奖金和差旅赞助 ...
- 关于Coursera上的斯坦福机器学习课程的编程作业提交问题
学习Coursera上的斯坦福机器学习课程的时候,需要向其服务器提交编程作业,我遇到如下问题: 'Submission failed: unexpected error: urlread: Peer ...
- ADO.NET 防止SQL注入
规避SQL注入 如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可 ...