前言

你是否每日都花费大量时间做着各种报表,被小伙伴们亲切的称为:“表哥”“表姐”

你是否经历过数据太大导致Excel程序卡死,做了一上午的成果付诸东流(额的神啊 ̄へ ̄)

你是否经历过因长时间盯着各种表导致眼花缭乱,弄错公式,数据出错,闹出笑话

如果以上几个场景你都经历过,或是正处在这个阶段,那么这篇文章可能对你有点帮助。

本文结合实际工作场景,从数据获取一数据清洗—模型搭建(计算)—数据可视化,展现自动化展示的完整过程,过程虽简单,希望大家可以由简入深,各有所得。

注:文章所有数据均为虚拟数据

正文

工具及第三方库:MySQL Jupter Notebook ;Pandas numpy pyecharts

在文章开始之前,先简要介绍一下业务场景及整体思路:

业务场景:

在线教育行业,用户转化关键指标主要有:用户注册数、用户试听数、用户成单数,由此制作一个漏斗图可以很直观的展示连续业务流程节点转化情况。

整体思路:

一、获取数据

首先从数据库中导出“注册表”“试听表”“成单表”,然后使用Pandas导入等待处理

import pandas as pd
import numpy as np
from datetime import datetime
#导入数据表:“员工表”“注册表”“试听表”“成单表”
employee=pd.read_excel('C:/Users/young/Desktop/自动化report/业务员明细表.xlsx')
register=pd.read_excel(r'C:/Users/young/Desktop/自动化report/注册表.xlsx')
audition=pd.read_excel('C:/Users/young/Desktop/自动化report/试听表.xlsx')
contract=pd.read_excel('C:/Users/young/Desktop/自动化report/成单表.xlsx')
#查看register表是否导入成功
employee.head()
#查看数据量
employee.shape
#其他表也是通过该方式查看
#通过查看,这几张表都已成功导入

二、数据清洗

这里的数据清洗最关键的是,因需要统计特定部门业绩,所以这里需要通过部门员工ID匹配三张业绩表,从而得到只属于特定部门的业绩数据。我们做漏斗统计,只需要计数即可,所以有很多的字段是用不到的,我们可以只选择原表中需要的字段进行匹配即可,这样可以减少内存使用空间,提高处理速度

#选取各个原表中需要的字段
register_1=register['ID','create_time']
auditon_1=audition['ID','time','status']
contract_1=contract['ID','values']#匹配注册表,因为要匹配特定员工业绩所以这里使用left连接
register_s=pd.merge(employee,register_1,left_on='id',right_on='ID',how='left')
#同样的,试听表及成单表也是同样的处理方式
audition_s=pd.merge(employee,audition_1,left_on='id',right_on='ID',how='left')
contract_s=pd.merge(employee,contract_1,left_on='id',right_on='ID',how='left')

三、数据计算

#总注册数
Tr=register_s['ID'].count()
Tr=Tr.astype(float)#转化数据类型#总试听数
#满足状态才算是试听,这里起到过滤的作用
ad=audition_s.loc[(audition_s.status.isin(['system','no_system']))]
Ta=ad['ID'].count()
Ta=Ta.astype(float)#总成单数
Tc=contract_s['ID'].count()
Tc=Tc.astype(float)
Tc

四、数据可视化

把上面计算所得的数据构建一个DataFrame数据结构

report = pd.DataFrame([Tr,Ta,Tc],index = ["总客户数","总试听数",'总成单数'])
report.reset_index().rename(columns={'index':'类目',0:'统计'})#修改列名#输出:
'''
类目       统计
总客户数   65000
总试听数   10000
总成单数   5000
'''

制作漏斗图

pyecharts版本已更新至一个全新的版本v1,且向下不兼容,也就是说之前用低版本写的东西全部无效了,所以本文用的是最新版本的pyecharts

附上官方文档:

A Python Echarts Plotting Library​pyecharts.org

from pyecharts import options as opts
from pyecharts.charts import Funnel, Pagem=["总注册数","总试听数",'总签约数']
n=[Tr,Ta,Tc]funnel=(Funnel(init_opts = opts.InitOpts(width="500px",height="400px")).add("类目",[list(z) for z in zip(m,n)]).set_global_opts(title_opts=opts.TitleOpts(title="漏斗图")))
funnel.render_notebook()

以上就是简单的自动化漏斗图,这里只提供思路,其实还有很多的东西可以做,比如环比、同比等等。

用Python搭建简单自动化报表(漏斗模型)相关推荐

  1. python report_ReportPortal(自动化报表统一平台)的搭建与python推送

    ReportPortal(自动化报表统一平台)的搭建与python推送 ReportPortal(自动化报表统一平台)的搭建与python推送 项目地址 GIT:https://github.com/ ...

  2. Python实现简单的SI传播模型

    #SI疾病传播模型的原理 在经典的传染病模型中,种群(Population)内N个个体的状态可分为如下几类 易感状态(Susceptible).一个个体在感染前是处于易感状态的,即该个体有可能被邻居个 ...

  3. 怎样用python搭建简单的系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  4. 基于ELK和Python搭建简单的监控告警系统

    coder_jerry 关注  0.1 2017.06.23 19:04* 字数 1945 阅读 3971评论 1喜欢 5 简介 在做完支付系统后,我搭建了两套监控系统. 一套是点评的CAT,主要用于 ...

  5. Pytest + Selenium + Allure + Jenkins搭建简单自动化框架

    1.环境搭建 1.1 安装python,配置环境变量 下载地址:https://www.python.org/downloads/下载需要的版本(3.7以上) 1.2安装pycharm 下载地址:ht ...

  6. python搭建selenium_自动化测试之路3-selenium3+python3环境搭建

    1.首先安装火狐浏览器 有单独文章分享怎么安装 2.搭建python环境 安装python,安装的时候把path选好,就不用自己在配置,安装方法有单独文档分享 安装好以后cmd打开输入python查看 ...

  7. python搭建简单本地服务器

    没搭建过服务器的人想搭建一个确实有点头疼,ME- 不过搭建出来后,如标题,没搭过的骚年继续,assert(reader instanceof 没服务器经验); 环境 Ubuntu15.04 Serve ...

  8. Python搭建简单的web服务器

    1.win+R输入cmd打开命令行 2.通过 cd 进入到你保存 HTML 文件的目录.例如:H:\D3\d3 输入 cd\ 指令进入到C盘的根目录.(CD(更改目录).使用此命令可以更改当前目录) ...

  9. python搭建简单http文件服务器

    import SimpleHTTPServer import SocketServerPORT = 8000Handler = SimpleHTTPServer.SimpleHTTPRequestHa ...

最新文章

  1. Avdshare Audio Converter 7中文版
  2. 执行计划信息Oracle 执行计划总结
  3. Docker_容器命令
  4. 设△ABC的内角A,B,C,所对的边分别为a,b,c,且acosB-bcosA=3/5c,则tan(A-B)的最大值为
  5. 阿里的26款大神级的Java开源项目
  6. python画樱桃小丸子_每天坚持画画|简笔画练习“樱桃小丸子”
  7. static in c language
  8. 【T-SQL系列】新的排序函数
  9. 20 图|Nacos 手摸手教程
  10. Docker的常用操作
  11. Centos7 只启用iptables 禁用firewalld功能.
  12. 不显示藏宝阁试穿服务器,梦幻西游:藏宝阁试穿功能的妙用,无限回档测试
  13. Nginx之——参数详解
  14. Android倒计时工具
  15. ERROR: [BD 41-237] VIVADO使用BD时报错
  16. 如何理解时间复杂度和空间复杂度
  17. Chap.16 总结《CL: An Introduction》 (Vyvyan Evans)
  18. k8s安装 从k8s.gcr.io 拉取镜像失败
  19. 联想服务器显示系统初始化,[转载]联想服务器系统设置(一)
  20. 【Lintcode】1718. Minimize Malware Spread

热门文章

  1. ANSI最全介绍linux终端字体改变颜色等
  2. 3D建模入门学习方法,制作过程的六个主要阶段讲解 小白教程
  3. 【从零学习openCV】IOS7根据人脸检测
  4. 【Java】若依前后端分离,分页数据为null报错
  5. 解决android studio编译报错:Failed to find Build Tools revision xx.x.xx
  6. matlab图像进行变换
  7. 黑白第六回——联想ThinkPad X390系统迁移
  8. Excel2016办公扫盲
  9. 线上教学,师生“网上见”
  10. 标签超出图像控件c语言,VC++标签控件之图像标签控件