利用Python实现自动生成数据日报
作者:朱小五 发布时间:2022-08-26 11:12:48
前言
人生苦短,快学Python!
日报,是大部分打工人绕不过的难题。
对于管理者来说,日报是事前管理的最好抓手,可以了解团队的氛围和状态。可对于员工来说,那就有的聊了。对于重复性的工作,我非常推荐大家使用Python将其变成模块化、自动化,帮助我们实现高效办公。
下面我们通过一个补写销售日报的案例,展示一下Python自动化办公的优势。本文简化了案例的流程。
需求详解
朋友的需求是这样的,他们平时的销售数据是记录在Excel上,汇总后会按照部门进行统计。但是今年年初时,领导突然要求写日报,大家写了一个月发现并不检查就没继续写下去。
Excel日报数据
现在突然被要求明天交本月之前的所有日报,这相当于要补2-5月将近120天的日报,如果靠双手复制粘贴,那估计要吐血了。朋友将其写日报的相关文件都发了过来,发现最终日报效果如下所示。
所以需求也就是比较简单了,只需要从Excel表格中读取每日的数据,使用Python将其处理后,再依次写入Word文档中,即可实现批量生成日报。
数据处理
在进行数据处理之前,要先了解最终需要哪些数据。如下图所示,在目标日报Word中主要分为两类:红色标记的数值主要是由当日的数据、或者由它们计算后得到的数据构成;绿色标记的表格则更简单了,就是近七日的数据(销售数量、销售金额、销售目标、完成度)。
首先我们导入Pandas模块进行数据处理
import?pandas?as?pd
df?=?pd.read_excel("日报数据.xlsx")
df
输出结果
导入数据后,接着就可以按照我们的需求,来进行数据运算了。数据运算主要分为两种,一种是利用加 +、减 -、乘 *、除 / 进行数据运算,另一种是利用统计方法进行数据运算。
在交互式环境中输入如下命令:
df["日期"]?=?df["日期"].apply(lambda?x:x.strftime("%Y-%m-%d"))
df["当日完成度"]?=?(df["销售金额"]/df["销售目标"]*100).round(1)
df["累计销售金额"]?=?df["销售金额"].cumsum()
df["当年完成度"]?=?(df["累计销售金额"]/2200000*100).round(1)
df["累计销售金额"]?=?(df["累计销售金额"]/10000).round(2)
df
输出结果:
可以看到,最终结果截图中红色标记的数据内容已经全部被计算出来。而绿色标记的表格则更加简单了,使用Pandas模块中的数据选取即可。
在交互式环境中输入如下命令:
num?=?10
df.iloc[num-7:num,?:5]
输出结果:
通过这种方法就可以轻松得到某一日期的过去7日内的日报数据合集。
来源:https://mp.weixin.qq.com/s/RpPn8jKP7nN6iif_ElTQXQ
猜你喜欢
- 前面我讲解了如何将树莓派(Raspberry Pi)打造成无线路由,感觉每次通过命令ssh管理显麻烦,于是自己动手编写Web界面,主要是使用
- 从url中找到域名,首先想到的是用正则,然后寻找相应的类库。用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等。通过go
- 在flask中可以像go和angular那样使用页面模版(template),可以将HTML页面显示进行模版化,通过参数传递与页面进行数据交
- 除了第一年外,谷歌每年母亲节都会更换主页的logo以向全世界的母亲致敬。虽然2000年和2001年母亲节的logo图片看起来没什么不同,但是
- hanxiaolian 为了躲避 lake2 ASP站长管理助手而写.. 一.绕过lake2 Asp木马扫描的小马 代码如下:<%&n
- Hi,好久不见,我还是那颗翻滚的老鼠屎。处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这
- nonzero函数返回非零元素的目录。返回值为元组, 两个值分别为两个维度, 包含了相应维度上非零元素的目录值。 import
- 本文实例讲述了python写xml文件的操作的方法,分享给大家供大家参考。具体方法如下:要生成的xml文件格式如下:<?xml ver
- 在Udacity上课时学到了python的turtle方法,这是一个很经典的用来教小孩儿编程的图形模块,最早起源于logo语言。python
- 详解Python文本操作相关模块linecache——通过使用缓存在内部尝试优化以达到高效从任何文件中读出任何行。 主要方法: lineca
- PHP quotemeta() 函数实例在预定义的字符前添加反斜杠:<?php$str = "Hello world. (c
- 1. 列表使用sum, 如下代码,对1维列表和二维列表,numpy.sum(a)都能将列表a中的所有元素求和并返回,a.sum()用法是非法
- 在官方网站中对as_index有以下介绍:as_index : boolean, default TrueFor aggregated ou
- (1)使用python生成pdf文档需要的最基本的包是pdfgen。它属于reportlab模块,而reportlab模块并没有默认集成到p
- 本文实例为大家分享了python实现彩 * 转换成灰度图的具体代码,供大家参考,具体内容如下from PIL import Imageimpo
- 如下所示:#!/usr/bin/python# coding=utf-8#import timeimport datetime# 今天日期t
- Python由Guido Van Rossum发明于90年代初期,是目前最流行的编程语言之一,因其语法的清晰简洁我爱上了Python,其代码
- 阅读上一篇:css基础教程属性篇 本篇主要介绍css对边框(border)的属性控制和链接(link)的伪类选择器.边框(border):
- 前言Django的模型(Model)的本质是类,并不是一个具体的对象(Object)。当你设计好模型后,你就可以对Model进行实例化从而创
- python可以简单优美,也很有趣,下面是收集的例子:1.一句话开始一个http的文件服务器:$ python -m SimpleHTTPS