打开搜狗搜索APP,查看更多精彩资讯

如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可以通过一个脚本自动生成报告,然后上班就可以腾出时间来学习其他的知识。

利用python生成word,我们需要学习一个新的模块:python-docx

首先:

导入需要的模块

创建一个空文档:

简单地几行代码我们就可以创建一个新的word文档,是不是很简单,但是我们今天要做的或许稍有难度,首先先看看我们今天的需求:

今天我们分析一份26所2019年高校开学流量变化

流程是这样的的:通过pandas分析统计数据

通过matplotlib批量生成图表

通过python-docx自动化生成汇报word

报告模式:一个大学一个标题

然后一段描述文字:

一张趋势变化图表

let's go!

现附上最后的结果,然后一步一步解析:

导入两份数据:历史数据,今天的数据

新建一个word:

获取高校的校名清单:

通过循环大学校名清单,一个一个处理:

筛选每次循环到的高校数据:

通过matplotlib画一个1*2的折线图:

将生成的图表保存为图片文件,方便导入到word:

将统计的数据和图表写入到word:p = document.add_paragraph()

p.add_run(each).bold = True

document.add_paragraph('4G业务量&VOLTE话务量', style='Intense Quote')

paragraph = document.add_paragraph('今日4G流量为:%.2f;VOLTE话务为:%.2f;2G流量为:%.2f;2G话务为:%.2f。' % (

x["4G流量"].values[-1], x["4G话务量"].values[-1], x["2G流量"].values[-1], x["2G话务量"].values[-1]))

document.add_heading("%s业务量变化图:" % each, level=1)

document.add_picture('%s.png' % each, width=Inches(6))

保存文件:document.save('demo.docx')

python-docx知识点

完整代码:document = Document()

document.add_heading('\\t\\t\\t大学流量趋势变化报告', 0)

gxlist = gx2["高校"].unique().tolist()

for each in gxlist:

print(each)

x = gx2[gx2["高校"] == each]

g = gx1[gx1["大学"] == each]

# 设定主题

sns.set_style("darkgrid")

sns.set_context("notebook", font_scale=1.3, rc={"lines.linewidth": 1.5})

# 该方法会返回画图对象和坐标对象ax,figsize是设置子图长宽(1200,800)

fig, ax = plt.subplots(figsize=(18, 10), ncols=1, nrows=2)

ax[0].plot(x["日期"], x["4G流量"], label="4G流量变化", lw=2, c="r", marker='.')

ax[0].plot(x["日期"], [g["去年开学4G流量"].values[0] for i in range(

len(x["日期"]))], label="去年开学4G流量变化平均值", lw=1.5, ls='-.', c="g")

ax[0].plot(x["日期"], [g["上学期4G流量"].values[0] for i in range(

len(x["日期"]))], label="上学期4G流量变化平均值", lw=1.5, ls=":", c="b")

ax[0].legend(loc="center left") # 添加图列就是右上角的点说明

ax[0].set_title('4G流量变化(GB)')

for a, b in zip(x["日期"], x["4G流量"]):

ax[0].text(a, b+(max(x["4G流量"])-b)*.1, '%.0f' %

b, ha='center', va='top', fontsize=15)

ax[1].plot(x["日期"], x["4G话务量"], label="4G话务量变化", lw=2, c="r", marker='.')

ax[1].plot(x["日期"], [g["去年开学4G总话务"].values[0] for i in range(

len(x["4G话务量"]))], label="去年开学4G话务变化平均值", lw=1.5, ls='-.', c="g")

ax[1].plot(x["日期"], [g["上学期4G总话务"].values[0] for i in range(

len(x["4G话务量"]))], label="上学期4G话务量变化平均值", lw=1.5, ls=":", c="b")

ax[1].legend(loc="center left") # 添加图列就是右上角的点说明··

ax[1].set_title('4G话务量变化(ERL)')

for a1, b1 in zip(x["日期"], x["4G话务量"]):

ax[1].text(a1, b1+(max(x["4G话务量"])-b1)*.1, '%.0f' %

b1, ha='center', va='top', fontsize=15)

fig.suptitle("%s业务量变化图" % each)

fig.autofmt_xdate()

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

plt.savefig("%s.png" % each)

p = document.add_paragraph()

p.add_run(each).bold = True

document.add_paragraph('4G业务量&VOLTE话务量', style='Intense Quote')

paragraph = document.add_paragraph('今日4G流量为:%.2f;VOLTE话务为:%.2f;2G流量为:%.2f;2G话务为:%.2f。' % (

x["4G流量"].values[-1], x["4G话务量"].values[-1], x["2G流量"].values[-1], x["2G话务量"].values[-1]))

document.add_heading("%s业务量变化图:" % each, level=1)

document.add_picture('%s.png' % each, width=Inches(6))

document.save('demo.docx')

python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+相关推荐

  1. python如何将多张excel表内数据求和_Excel批量操作,把你的工作效率提升10倍以上(1)...

    ​君子之交淡若水,小人之交甘若醴,君子淡以亲,小人甘以绝.--庄子 我们在日常工作中,遇到的最多的点,就是涉及到的内容很多,如果一个个的去查看,效率会非常慢,这时批量操作可以大大提升我们的工作效率,今 ...

  2. python对工作效率的提升_使用了这个几个Python内置小工具,可以让你的工作效率提升一倍...

    使用了这个几个Python内置小工具,可以让你的工作效率提升一倍 我们将会详情4个Python解释器自身提供的小工具. 这些小工具在笔者的日常工作中经常使用到, 减少了各种时间的白费, 然而,却很容易 ...

  3. 6个 Python 办公黑科技,工作效率提升100倍!(附代码)

    下班晚,加班久感觉已经成为现代打工人的通病,每天将大部分时间浪费在一些机械,重复的工作上,如何提升你自己的工作效率才是关键. 今天给大家分享6个 Python 办公小技巧,让你的工作效率倍增,欢迎大家 ...

  4. python提高办公效率-用Python的这3个优点,让工作效率提升一倍

    如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel.Tableau.PowerBI等,都能成为数据分析的得力助手.但它们的不足也是显而易见的:操作繁琐,复用性差,功能相对局限单一. 怎么解 ...

  5. python如何提高工作效率_用Python的这3个优点,让工作效率提升一倍

    如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel.Tableau.PowerBI等,都能成为数据分析的得力助手.但它们的不足也是显而易见的:操作繁琐,复用性差,功能相对局限单一. 怎么解 ...

  6. python效率提升_Python GUI开发,效率提升10倍的方法!

    1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...

  7. 通Python实现操作 excel表格 工作效率提升百倍

    一.概述 操作 excel 是程序员经常要遇到的场景.因为产品.运营的数据都是以这种格式存储.所以,当程序员拿到这些数据肯定要解析,甚至需要把结果输出成 excel 文件. 下面就介绍如果用 Pyth ...

  8. 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)

    一.解析PDF(简历内推) 应用场景:简历内推(解析内容:包括不限于姓名.邮箱.电话号码.学历等信息) 输入:要解析的文件路径 输出:需要解析的内容(点我主页,详见历史文章) 环境准备:python ...

  9. 小白用python处理excel文件-刚入门的小白用Python操作excel表格!使工作效率提升一倍不止!...

    前言 某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意 ...

最新文章

  1. 【Computer Vision】 复现分割网络(1)——SegNet
  2. 刷了一个月算法,终于拿到了double的offer
  3. 2015年10月15日作业
  4. 2003 IIS搭建与配置
  5. 关于在呼叫中心业务中应用语音识别技术的探讨
  6. 面试题 17.13. 恢复空格
  7. 函数不可访问_关于可重入函数
  8. CES上那些卖萌耍酷的家用机器人究竟怎么样?还是不太懂人话
  9. 【译】Spring 4.0带来的@Conditional注解
  10. 处理 Exception 的几种实践,很优雅,已被很多团队采纳!
  11. mysql 5.0 慢日志_MySQL的慢查询日志
  12. Dev-cpp5.11下载
  13. (附源码)springboot球鞋商城 毕业设计 011229
  14. php 汉字转拼音 [包含20902个基本汉字+5059生僻字]
  15. 移动端和pc端的区别html,pc端是什么意思(PC端和移动端有哪些区别?)
  16. cdn刷新api_缓存刷新与查询
  17. 怎么绕过PHP的防护,PHP代码层防护与绕过
  18. 华为鸿蒙删除视频报错rm: local.mp4: Owner died
  19. 基于STM32的智能行车辅助系统(自动大灯,倒车报警,自动雨刷,温湿度传感器,TFT 1.3寸LCD屏幕显示,ESP8266WIFI)
  20. 中国移动java面试_中国移动软件工程师面试经验

热门文章

  1. Linux特殊权限分析(第二版)
  2. 前端笔试之手写代码(一)
  3. Redis命令——键(key)
  4. 行云管家堡垒机的使用方法之二——新增登录凭证
  5. CentOS 系统添加网卡
  6. mysql升级准备工作
  7. C语言——判断是该年的第几天
  8. 线性代数 —— 矩阵的行列式
  9. 小b和回文数(51Nod-2483)
  10. 相离的圆(51Nod-1278)