0902 团队销售漏斗

0902 团队销售漏斗

知识点

漏斗图

读取excel

获取所有工作表名称

.sheetnames 属性可以获取文件中所有工作表的名称。示例代码如下:

path = "/Users/ajun/销售漏斗.xlsx"
wb = openpyxl.load_workbook(path)
for item in wb.sheetnames:
    print(item)
teamA
teamB
teamC

题目和解题步骤

阿俊是销售团队的leader,临近年底需要用漏斗图展示各组销售漏斗,对比三个团队的销售情况。

销售文档路径: /Users/ajun/销售漏斗.xlsx
三组的名称分别是:teamA、teamB和teamC。

题目要求:

  1. 学习提示的知识点读取文档中所有的工作表;
  2. 读取每个工作表的第1行和第2行数据,将数据处理成 [“目标客户100%”, 1000] ,计算百分比时,使用round()保留一位小数;
  3. 利用处理后的数据绘制漏斗图 ;
  4. 使用 LegendOpts() 隐藏图例;
  5. 使用 TitleOpts() 将标题设置为:f"{小组名称}销售漏斗"
  6. 将三个图表保存到对应路径: f"/Users/ajun/{小组名称}.html"
    在这里插入图片描述
    在这里插入图片描述

代码

# 使用from...import从pyecharts.charts导入Funnel
from pyecharts.charts import Funnel
# 使用from...import从pyecharts导入options,简写为opts
from pyecharts import options as opts
# 使用import导入openpyxl模块
import openpyxl

# 将文件路径"/Users/ajun/销售漏斗.xlsx",赋值给path
path = "/Users/ajun/销售漏斗.xlsx"
# 使用openpyxl.load_workbook()读取文件,赋值给wb
wb = openpyxl.load_workbook(path)


# 使用.sheetnames读取文件中所有的工作表
# 读取每个工作表中的第1行标题和第2行数量
# 将数据处理成二维列表[["目标客户100%", 100]]
# 利用for循环创建Funnel对象,生成三个漏斗图
# 冲啊!!
ws = wb.sheetnames
for team in ws:
    positionSheet = wb[team]
    label = positionSheet[1]
    num = positionSheet[2]
    total = []
    for i in range(1,7):
        # 取label中的每项元素,使用.value得到值,赋值给title
        title = label[i].value
        # 取num中的每项元素,使用.value得到值,赋值给number
        number = num[i].value
        # 创建空列表temp
        temp = []
         # TODO 使用if判断i等于1时
        if i==1 :
            # TODO 使用append()将title和100%追加到列表temp
            temp.append(title+"100%")
            # TODO 否则
        else:
            # TODO 使用(当前项/前一项)*100,赋值给pass_rate
            pass_rate = (number/num[i-1].value)*100
            # TODO 使用round()保留pass_rate的一位小数,赋值给percent
            percent = round(pass_rate, 1)
            # TODO 使用append()将标签和格式化组成的x%追加到列表temp
            temp.append(title+f"{percent}%")
             # TODO 使用append()将number追加到列表temp
        temp.append(number)
        # TODO 使用append()将temp追加到列表total
        total.append(temp)
    # TODO 使用Funnel()函数创建对象赋值给funnel
    funnel = Funnel()

    # TODO 将series_name设为 漏斗图
    # 将total赋值给data_pair
    # 设置gap值为10
    # 将参数添加到add()函数中
    funnel.add(series_name="",data_pair = total,gap=10)
    # TODO 使用LegendOpts(),传入参数is_show=False,赋值给legend_opts 
    # 使用TitleOpts(),设置标题为"产品岗位招聘情况",赋值给title_opts
    # 调用set_global_opts()
    funnel.set_global_opts(legend_opts=opts.LegendOpts(is_show=False),
                      title_opts=opts.TitleOpts(title=f"{team}销售漏斗"))

    # TODO 使用render()生成漏斗图,存到路径/Users/caicai/pm.html
    funnel.render(f"/Users/ajun/{team}.html")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值