解放双手,一键运行!Python每日自动生成数据日报
off999 2025-07-23 17:38 73 浏览 0 评论
对于一个企业来说,高层看意义,中层看结论,基层看落地,数据日报、周报、月报可以监控销售个人在实际执行过程中的销售动态,而数据季度报、年报可以反映一个销售策略是否与实际的业务场景切合。
可见数据日报在我们日常工作中必不可少,本文使用案例数据,构造销售收入、销售单量等关键性指标,借助Python工具一键生成数据日报,下面一起学习吧!
示例工具:anconda3.7
本文讲解内容:办公自动化
适用范围:Python自动生成数据日报
导入数据
导入报表数据,包含销售日期,员工编号,销售员等七个字段。
import pandas as pd
from datetime import datetime
df=pd.read_excel(r'C:\Users\尚天强\Desktop\销售数据明细.xlsx',parse_dates=['销售日期'])
df.head()#数据预览查看数据属性,其中销售日期为日期类型,销量和销售额为数值类型,其他均为文本数据类型。
df.info()#查看数据属性计算指标
计算指标设定,设置本文需要计算的指标,指标计算如下:
- 收入=销量*销售额
- 单量=销量汇总
- 货品数=货品数去重
- 收入环比:本月收入/上月收入-1
- 单量环比:本月单量/上月单量-1
计算本月相关指标
首先选取本月的数据,本月截止到2021年12月25日的数据,分别计算本月截止12月25日收入、本月截止12月25日单量、本月截止12月25日货品数。
the_month=df[(df['销售日期']>=datetime(2021,12,1))&(df['销售日期']<=datetime(2021,12,25))]
shouru1=(the_month['销量']*the_month['销售额']).sum()#本月截止12月25日收入
danliang1=the_month['销量'].sum()#本月截止12月25日单量
huopin1=the_month['货号'].nunique()#本月截止12月25日货品数
print("本月截止12月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru1,danliang1,huopin1))本月截止12月25日收入为369242.50元,单量为728个,货品数为227个。
计算上月相关指标
同时选取上月同期的数据,数据范围11月1日到11月25日的数据,分别计算上月同期的收入、上月同期的单量、上月同期的货品数。
last_month=df[(df['销售日期']>=datetime(2021,11,1))&(df['销售日期']<=datetime(2021,11,25))]
shouru2=(last_month['销量']*last_month['销售额']).sum()#上月截止11月25日收入
danliang2=last_month['销量'].sum()#上月截止11月25日单量
huopin2=last_month['货号'].nunique()#上月截止11月25日货品数
print("上月截止11月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru2,danliang2,huopin2))上月截止11月25日收入为586483.80元,单量为777个,货品数为198个。
利用函数进行封装
以上我们可以发现规律,计算本月的相关指标数据与计算上月同期的指标数据计算逻辑是一样的,除了数据选取的日期不一样,我们可以自定义一个函数,用于计算相关的数据指标,简化数据计算的流程。
def get_month_data(df):
shouru=(df['销量']*df['销售额']).sum()
danliang=df['销量'].sum()
huopin=df['货号'].nunique()
return(shouru,danliang,huopin)
shouru1,danliang1,huopin1=get_month_data(the_month)#计算本月数据指标
shouru2,danliang2,huopin2=get_month_data(last_month)#计算上月数据指标
print("本月截止12月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru1,danliang1,huopin1))
print("上月截止11月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru2,danliang2,huopin2))本月截止12月25日收入为369242.50元,单量为728个,货品数为227个,上月截止11月25日收入为586483.80元,单量为777个,货品数为198个。
计算环比
构建一个DataFrame,填入具体的计算指标数值,计算环比数据。
ribao=pd.DataFrame([[shouru1,shouru2],
[danliang1,danliang2],
[huopin1,huopin2]],
columns=['本月','上月'],index=['收入','单量','货品数'])
ribao['环比']=ribao['本月']/ribao['上月']-1
ribao['环比']=ribao['环比'].apply(lambda x:format(x,'.2%'))
ribao可以将具体的数据日报导出到本地。
ribao.to_excel(r'C:\Users\尚天强\Desktop\数据日报.xlsx',index=False)计算每月的销售额、销量数据情况
计算每月的销售额、销售数据情况,使用groupby函数,同时aggregate函数自定义数值的计算方式,数据结果如下。
df['销售月份']=df['销售日期'].astype(str).str[0:7].str.replace('-','')
df_group=df.groupby("销售月份").aggregate({"销售额":"sum","销量":"sum"})
df_group数据可视化
导入pyecharts库,制作组合图,由图像可以看出,截止21年12月25日数据,21年7月销量最高、12月销量最低、21年10月收入最高、2月收入最低。
from pyecharts import options as opts
from pyecharts.charts import Bar, Line
from pyecharts.faker import Faker
#导入数据
v1 = df_group['销售额'].round(2).tolist()
v2 = df_group['销量'].tolist()
#柱形图
bar = (Bar()
.add_xaxis(df_group.index.tolist())
.add_yaxis("销售额", v1 ,category_gap="60%",gap="10%") #设置柱形间隙宽度
.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 单"), min_=0,max_=1750))#设置次坐标轴坐标大小
.set_series_opts(label_opts=opts.LabelOpts(is_show=True))#显示数据标签
.set_global_opts(title_opts=opts.TitleOpts(title="21年每月销售额与销量情况"),
datazoom_opts=opts.DataZoomOpts(),#添加滚动条
yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 元"),min_=0,max_=850000)))#设置主坐标轴坐标大小
#折线图
line = Line().add_xaxis(df.index.tolist()).add_yaxis("销售量", v2, yaxis_index=1, is_smooth=True)
#组合图
bar.overlap(line)
#在线显示
bar.render_notebook() ###bar.render(r'C:\Users\尚天强\Desktop\销售日报.html')以上我们就完成了一个常规的数据日报,根据具体的数据变化情况可以跟进下一步的销售动态,这里的数据日报比较简单,在实际数据报表制作中,比这个指标复杂的多,表现在指标繁复,计算逻辑复杂,需要数据分析师不断地优化计算流程。
三年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路。
相关推荐
- uefi模式下找不到硬盘(uefi引导找不到硬盘)
-
首先你的安装盘必须是从UEFI启动的,然后它才能安装为UEFI启动。(条件:Fat32文件系统,efi文件夹)其次你MBR+BIOS的系统想换成GPT+EFI的,分区得做一点改动,腾出来100M的空...
- win7怎么安装蓝牙驱动程序(win7电脑安装蓝牙驱动教程)
-
方法如下: 1、再开始里点击控制版面,点击【硬件和声音】找到【添加设备】 2、之后再选择你要添加的蓝牙耳机。 3、系统就会提示正在与蓝牙适配器连接,然后提示添加成功。 4、点击“开始”-“...
- 怎么装系统win7旗舰版(电脑怎么装win7旗舰版)
-
1、目前支持64位的Wincc版本有:WinccV7Sp3、WinccV11Sp2、WinccV12。2、Wincc的V11与V12两个版本不能共存,即不能同时安装在同一台电脑上。上述这两...
- 怎样恢复桌面图标原样(怎样恢复桌面图标原样显示)
-
桌面图标恢复原样步骤方法如下:1.右键点击图标、并点击‘属性’两字,再点击‘打开文件位置‘2.然后找到文件所在的位置,然后暂时将文件在一旁放着3.然后再去点击‘更换图标’这四个字,找到刚刚打开的文件...
- 消除u盘写保护(怎么解除u盘写保护)
-
如果您的U盘启用了写保护功能,可以尝试以下几种方法来解除写保护:1.检查U盘上的物理写保护开关:部分U盘有一个物理的写保护开关,可以在U盘的外壳上找到。请确保开关处于非写保护状态。2.使用CMD命...
- microsoft国际版(微软国际版bing)
-
win10系统自带的edge浏览器不分国内版和国际版。搜索引擎Bing分为国内版和国际版,区别如下一、迎合不同人群的需求。国际版显得更加个性,他迎合了不同人群的需求,在收缩上更加方便化和智能化,后期可...
- 为什么格式化sd卡后不能用了
-
SD卡受损后不格式化直接修复的方法:1,当系统发现SD卡受损之后,会提示进行格式化。2,把SD卡插入读卡器,接到电脑USB后,电脑提示格式化,点取消。然后查看一下属性。直接使用属性中的工具-开始检查...
- c盘删除的东西能恢复吗(c盘删掉的东西还在吗)
-
1.重新安装。 如果是安装在c盘下的普通应用程序,重新下载安装即可; 2.备份恢复或重装系统。 如果是删除了系统文件,在系统备过份且知道删除...
- 电脑如何重装系统winxp(电脑如何重装xp系统教程)
-
重装XP系统的步骤如下:1.首先备份您的重要文件和数据。2.插入XP系统安装光盘,重新启动计算机。3.在启动时按下计算机制造商指定的键(通常是F2、F12、Esc等)进入BIOS设置或启动菜单。...
- win8密钥永久激活工具(win8密钥永久激活工具在哪)
-
win8.1正式版升级win10,自动激活,win8.1的密钥不能激活win10,升级win10正式版以后,无论怎么安装win10,系统都是自动激活状态。终极PID检测产品密钥:GCRJD...
- 制作系统安装u盘教程(制作系统安装盘及系统安装的步骤)
-
答u盘做系统详细步骤如下: 1.首先我们要准备一个10G内存的空白u盘,然后在装机吧官网下载一个装机吧一键重装系统软件,安装完成后打开软件,制作模式选择”USB-HDD“分区格式为”NTFS“点击...
-
- 联想win7怎么进入bios设置(联想win7进入bios设置win10)
-
联想电脑win7进入bios设置的具体步骤如下: 1、首先我们打开电脑的同时,按下键盘上的“F2”。2、然后我们在弹出来的窗口中就可以进入到BIOS界面中。3、然后我们按下键盘上的“F10”,之后回车确定即可退出。联想电脑win7...
-
2025-11-09 14:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
