点点写在前面:

欧阳山东 @我最帅 作为小数点Python第二期的学员又双叒叕来分享干货啦!自东哥上次分享完关于咖啡馆的分析后,后台突然冒出各种灵魂拷问,如何学习Python的鸭?还有没有别的分析案例鸭?这次他给大家带来一个新分享,关于如何用Python做报表自动化。

记得我在上次分享的时候,说了Python可以实现很多自动化设计,有些还很高端。

当然了,东哥目前的功力,高端的还是做不来,但是简单的还是可以的。

所以今天我教你做两个简单而且实用的自动化,第一,报表生成自动化;第二,邮件发送自动化。

但我想说明的是,并不是所有报表都是需要或者适合做自动化的。

我们做自动化的目的是为了减少工作量,把一些重复性的工作交给程序处理。

在数据分析实践中,日报,周报,这种频率性很强的东西,就需要自动化;而那些不同活动的效果数据,每次都不一样,这样的做自动化就没有太大意义。

—1—报表自动化

我还是拿上次那个咖啡馆的例子来做案例。数据如下:

如果我想实现下面这个效果,怎么做自动化呢?

如果你每个月或者每周要这样一张表,而且这张表的数据都放在SQL里或者excel文件里,那么你就要告诉Python,怎么从这些表里做数据,这个做的过程,也就是自动化实现的过程。

解释一下:同比是指和去年同月相比;环比是指和上个月相比。

1、写本月(8月)数据代码

s代表销售额,t代表销售量(客流量),k代表件均销售额。

2、写上月(7月)数据代码

3、写去年(8月)数据代码

4、将上面三段代码算出的数据综合为一张表,然后算出同比环比,且将数据保存为“本月数据同比环比情况”表格到桌面备用,代码如下:

至此,我们想要的数据已经全部拿到了,以后你想要这样的表格,稍微改一下然后运行一下这段代码就好了。

我举例的这个表格还很简单,主要是为了演示更清晰,所以还看不出自动化的威力。但是如果是大量的日报数据指标,自动化的便捷就出来了。

所以,是不是很省事呢?

—2—代码函数化

细心的你,可能此刻已经看出我上面三段代码几乎是一模一样的了,只是改了一下时间而已。

对的,问题就在这里。在Python里,你记住我的一句话,只要涉及到重复的东西,就必然可以优化代码,这个优化过程,可以用自定义函数来解决。

定义好函数后,你就可以重复用这段函数帮你算数据了。

所以我先定义了一个monthly_data(df)函数用来算每个月的数据,就是黑色方框里的。这样你想要哪个月的数据,你就用这个月的数据去套用函数就行。

我把函数运行了3次,分别算出本月,上月,去年同月的数据,完整代码如下:

当然,结果也一模一样:

你会发现,运用了函数后,代码可以写得更少,而且可读性更强。另外说一嘴,会不会函数编程是区分菜鸟和熟手的重要区别喽。

—3—邮件自动化

我不知道大家都用的是什么邮箱,反正我一直用的是QQ邮箱。不过不管什么邮箱,自动化流程都是差不多的,下面我用自己的QQ邮箱来做个例子。

这个代码会用到很多大家并不熟悉的第三方库,没办法,我今天也是弄了很久,百度了很多东西才搞懂的。

不过你不需要为此多费心了,因为我帮你搞通了,你只要按照我的代码去做,就OK。

首先要在邮箱里进行设置。

红色方框里的东西打开,这样可以获得授权码用来在Python中执行登录发送等动作。

好,接下来就是自动化发邮件的代码实现了。完整代码如下:

代码写好了,运行后,即可收到邮件。

哎,这个过程我其实花了很多时间,中间遇到好几个bug没办法解决,比如设置附件啊,服务器端口啊地址啊,出现了索引错误啊,这些都是通过百度一个一个找别人的经验然后复制代码试错最后完成的。

好了,不说了,我们来看看结果吧:

看到没,红色方框里的东西都是我在上面代码中写好的。所以邮件自动化发送还是很简单的对不对?

嗯,今天的分享就到这里,我希望以后每周周末都能做个数据分析的小案例分享。大家可以一起玩啊,我还只是小菜鸟。

END

文章作者小数点python数据分析课程第二期学员 @我最帅

更多python数据分析干货,欢迎关注我们的微信公众号:POINT小数点数据

python自动化报表定时跑_POINTer分享:Python如何做报表自动化相关推荐

  1. 安利一款报表工具,Smartbi解决了Excel做报表的痛点

    Smartbi报表工具:https://www.smartbi.com.cn/download 众所周知,Excel是一个电子表格工具,而非数据库程序,通常用于制作报表.而一个数据库程序在数据存储和数 ...

  2. 阿里云服务器定时跑python_通过python调用阿里api定时备份阿里云RDS

    需求:全量备份数据库,但是数据库比较大,如果采用mysqldump在其他机器备份会大量占用mysql,所以采用全量备份,可以采用登录RDS控制台来手动点击备份,全量备份.但是太麻烦,所以研究了阿里ap ...

  3. python文件操作实验总结,[干货分享]Python文件操作技巧总结

    引言 小伙伴们,今天给大家讲解一下python程序下的文件操作完整技巧梳理,都是笔者总结的干货.通过本文阅读,不仅可以带来生产力提升,也可以开发小脚本为生活带来乐趣.         首先不知道大家对 ...

  4. python教学视频谁讲得好,python讲的比较好的视频

    学习python有什么好的视频教程 <上课视频资料>百度网盘资源免费下载链接提取码:5u85上课视频资料|最全Python学习资料|大数据文档|朱志杰  腾讯计费高一致性测试能力的构建实践 ...

  5. 从腾讯入职到离职,我仅用了三周:做大数据的同事看不起做报表的

    这是很多年前的事情了,从腾讯入职到离职,我用了三周,理由很简单,做大数据的同事看不起做报表的,当然,我是做报表的那个. 做大数据的,就一定能做好报表吗? 报表是企业IT数据建设必不可少的一环,小到一张 ...

  6. 用python实现自动化办公------定时发送微信消息

    python自动化办公------定时发送微信消息 身边的一位朋友的真实事迹分享给大家,就暂称他C吧.C是一个英俊潇洒的健身男,经常沾花惹草,桃花运不断,听C说他的微信好友就有5000+,平时回消息都 ...

  7. Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本

    Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本 大家好 我又来开新坑了,如图这次准备用python弄个简单脚本(根据图色判断进行键鼠操作) 1.老规矩 先安排运行环境 ...

  8. 用python实现自动化办公------定时发送邮件

    用python实现自动化办公------定时发送邮件 摘要 一.注册"和风天气" 二.用python获取和风天气响应的json数据 三.发送邮件 四.写入日志 程序源码 摘要 本文 ...

  9. python好用的软件_比python好用的分析软件_财务分析报表怎么做_企业财务报表分析软件-帆软...

    2020年刚刚接手公司管理工作的时候,我就有个想法:把财务部门变成公司的数据中心. 我发现,财务部门汇集了几乎公司内外所有的数据:每项业务活动只要涉及到money的进出,都会在财务账上留下记录.如果把 ...

最新文章

  1. Server2008 RMS測試
  2. SLF4J log4j 学习笔记一
  3. malloc()函数解析
  4. 20个堪称神器的Linux命令行软件
  5. 詹金斯搭建_与詹金斯一起连续交付Heroku
  6. mysql table keys_MySQL Explain详解
  7. oracle查询可更新结果集,jdbc 可更新结果集
  8. Subversion快速入门教程(SVN)
  9. 【Flink】FLink checkpoint 某个 subtask 特别耗时 DisconnectException: null
  10. python123判断字符串结尾_Python学习教程:在字符串的开头和结尾处做文本匹配
  11. 【Hive】数据导入方法
  12. ubuntu16:查看磁盘空间大小,查看每个用户的占用空间情况
  13. python 空间法向量可视化_三维空间中平面的法向量计算
  14. 谈谈杭州市未来15年城市发展重点和杭州第二机场位置预测
  15. xubuntu12.04配置
  16. Ae:文本动画制作器
  17. python利用公式计算_Python利用openpyxl处理Excel文件(公式实例)
  18. ap设置 维盟660g_WayOS|路由器WAN口数设置详细教程
  19. ListView中如何优化图片
  20. lcd1602显示和led显示的区别在哪里

热门文章

  1. 语音视频社交背后技术深度解析
  2. 大规模 Node.js 网关架构设计与工程实践
  3. 腾讯发布2017年代码报告
  4. Vue013_ vue组件化编码
  5. 每日两SQL(8),欢迎交流~
  6. leetcode 380. Insert Delete GetRandom O(1) | 380. O(1) 时间插入、删除和获取随机元素(Java)
  7. leetcode 274, 275. H-Index I, II(H 指数问题合集,线性查找/二分查找)
  8. Java程序员需要掌握的计算机底层知识(一):CPU基本组成、指令乱序执行、合并写技术、非同一访问内存 NUMA
  9. C语言 链表 头插法
  10. netty系列之:使用netty搭建websocket客户端