餐饮数据可视化实例

目录

1、创建数据库以及表结构        

2、向数据库导入数据

3、从数据库中提取数据

 4、数据清洗

5、PowerPivot 

6、体系指标的计算 

        指标①:销售金额

         指标②:折扣金额

        指标③ :折扣率

        指标④: 台数

        指标⑤: 翻台率(北极星指标)

        指标⑥:单均消费 

        指标⑦:座位数 

        指标⑧:上座率 

        指标⑨:人均消费 

7、数据透视图 

        ①簇状图和折线组合图

         ②环状图

8、切片器 


1、创建数据库以及表结构        

        查询语句;

        在表创建完成之后记得检查表,排除在导入数据时因为数据表的构建的原因

create database cy;
use cy;-- bill table
create table bill(
billdate date not null,
billnumber varchar(20) not null default '_',
shopname varchar(20) not null default '_',
billdiscount float not null default '0',
paytime time not null,
tablenumber int not null default '0',
peoplecount int not null default '0'
) charset="utf8";-- orderdetail table
create table orderdetail(
billnumber varchar(20) not null,
dateil varchar(20) not null,
pay int not null default '0'
) charset="utf8";-- shopdetail table
create table shopdetail(
shopname varchar(20) not null,
twotable int not null default '0',
threetable int not null default '0',
fourtable int not null default '0',
alltable int not null default '0'
) charset="utf8";-- 文件路径非中文
load data local infile "文件路径"
into table bill -- 表名
fields terminated by ","-- 创建单汇总金额表
create table ordergroup(
select billnumber,sum(pay) as pay
from orderdetail
group by billnumber);-- 创建新单号信息表
create table newbill(
select b.*,o.pay,b.billdiscount*o.pay as rebate 
from bill as b 
left join ordergroup as o on b.billnumber=o.billnumber);-- 创建新店面情况表
create table newshopdetail(
select shopdetail.*,(twotable * 2 + threetable * 3 + fourtable * 4) allseats
from shopdetail);-- 创建创建新点菜明细表
create table neworderdetail(
select shopname,orderdetail.*
from orderdetail 
left join bill on orderdetail.billnumber=bill.billnumber);-- 创建店汇总信息表
create table shoptotal(
select newbill.shopname as 店名,
count(newbill.billnumber) as 单数,
sum(newbill.peoplecount) as 人数,
sum(newbill.rebate) as 折扣总金额,
sum(newbill.pay) 店汇总金额,
sum(newbill.pay)/count(newbill.billnumber) 单均消费,
sum(newbill.pay)/sum(newbill.peoplecount) 人均消费,
newshopdetail.alltable 总台数,
newshopdetail.allseats 总座位数,
count(newbill.billnumber)/newshopdetail.alltable 翻台率,
sum(newbill.peoplecount)/newshopdetail.allseats 上座率,
sum(newbill.rebate)/sum(newbill.pay) 折扣率
from newbill
left join newshopdetail on newbill.shopname=newshopdetail.shopname
group by newbill.shopname);

2、向数据库导入数据

        执行此代码需要做一些准备工作:

                ①安装pandas包;pandas在进行数据的导入时具有更快的速度和效率

                ②安装pymysql;连接MYSQL数据库的第三方包

        代码注意事项:

                ①//后面跟的是用户名,:后面是用户名所对应的密码@后面的是IP地址以及端口号,再后面就是数据库名称

                ②读入文件的地址;此处使用的是相对地址,因为所需要的文件在当前目录的data下面,如果不在可以使用绝对路径

        数据导入完成后记得检查数据导入是否正确,排除在之后的过程中因为数据库的数据的原因

import pandas as pd
from sqlalchemy import create_engine
# pip install pymysqlengine = create_engine('mysql+pymysql://root:123456@localhost:3306/cy?charset=utf8')bill = pd.read_csv('./data/bill.csv')
orderdetail = pd.read_csv('./data/order.csv')
shopdetail = pd.read_csv('./data/shop.csv')bill.to_sql('bill', engine, if_exists='replace', index=False)
orderdetail.to_sql('orderdetail', engine, if_exists='replace', index=False)
shopdetail.to_sql('shopdetail', engine, if_exists='replace', index=False)

3、从数据库中提取数据

在将数据库的数据导入到excel中可能会遇到两个问题

        ①从来自数据库的选项中有连接MYSQL的选项,但是连接不上;可能是需要安装插件

参考此网址:​Excel Power Query连接MySQL数据库组件下载安装 - 知乎一、插件下载 下载地址 https://dev.mysql.com/downloads/connector/net/1.1直接点击Download 1.2选择No thanks just start my download直接下载 1.3下载到桌面 二、安装 2.1双击安装 2.2 next 下一步 2.3选择Typi…https://zhuanlan.zhihu.com/p/435906559

        ②从来自数据库的选项中没有连接MYSQL的选项,此时只能通过ODBC去连接MYSQL,此时需要去安装一个驱动;

        参考网址:使用Excel 通过 ODBC 连接到 MySQL 数据库使用Excel 通过 ODBC 连接到 MySQL 数据库icon-default.png?t=M5H6http://www.360doc.com/content/21/0712/19/62685306_986266766.shtml​​​​​

        

 

 4、数据清洗

        上一步的转换数据之后进入到的是PowerQuery;

        PowerQuery擅长处理的就是数据清洗,例如改变字段的格式,去除空行,错误

        数据清洗完之后就上载到表中,然后再加载到擅长数据分析、数据建模的PowerPivot中

 

 

 

5、PowerPivot 

        将数据加载到PowerPviot中之后除了要检查数据之外,最先要做的事情就是建立表与表之间的关系,也就是1对多的关系中的谁是多谁是1;

        在PowerPviot的右下角有两个按钮,一个是进入到关系视图,一个是在表视图

 

 

         事情的关键在于如何去建立关系,以及确定谁是1谁是多,因为在进行建模的时候会涉及到聚合运算;

        聚合运算分为以下几种情况:

                1、以一表的字段分组,对多表的字段进行聚合计算(可行)

                2、以多表的字段为分组,对一表的字段进行聚合计算:(不可行)

                3、以一表的字段为分组,对一表的字段进行聚合计算,两者为同一张表:(可行)

                4、以多表的字段为分组,对多表的字段进行聚合计算,两者为同一张表:(可行)

        

6、体系指标的计算 

        首先要知道需要计算哪些指标,以及指标的意义(计算方式),然后再对表中的数据进行计算

        

 

 

        指标①:销售金额

        首先是对门店的名字进行分组,然后再计算销售金额,销售金额在表orderdetail中,但是门店名字是在表bill中,而两表的连接方式是多对一,求的也正好是多表的聚合,所以是可行的;

         指标②:折扣金额

        折扣金额就是价格乘以折扣然后求和;

        折扣和价格均在orderdetail表中,但是店名不在,店名在bill表中,表关系依旧是多对一的关系,所以可以直接求和即可(因为本身表中是没有折扣金额可以求和的,所以需要先增加一列折扣额,根据分组对折扣额求和)

 

 

        指标③ :折扣率

        折扣率的计算很简单,也就是折扣金额除以销售额即可,此时需要注意的是可以用divide函数,此函数的好处在于当分母为0时不会报错

 

        指标④: 台数

        台数也就是桌子数,此时的桌子数和店名数均在表shopdetail中,也就是同一张表的聚合(可行)

 

        指标⑤: 翻台率(北极星指标)

        翻台率=订单数/台数

        订单数:订单的个数(对订单编号进行计数)

 

 

        指标⑥:单均消费 

        单均消费=消费金额/订单数

 

        指标⑦:座位数 

        在stopdetail表中包含了各个款式的桌子数,需要对其求和得到总的桌子数

        此表还包含了店名,也就是单表的求和,可行的

 

 

        指标⑧:上座率 

        上座率=客流量/座位数

 

        指标⑨:人均消费 

人均消费=销售金额/客流量

 

7、数据透视图 

        ①簇状图和折线组合图

        

 

 

         ②环状图

8、切片器 

 插入切片器之后一定要将其和其他报表连接起来,这样才能做到一起动

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/67464.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

餐饮后台管理系统

一、项目介绍: 用于每天的菜品数据分析,客户的管理,员工的管理,查看订单信息,菜品的添加或者下架管理 二、项目使用技术栈: vue2全家桶、element-ui、axios、js、es6、echarts 三、主页效果图&#xff…

点餐系统(设计模式)

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,结合设计模式(2种以上)至少实现系统的以下功能: 正常餐品结算和找零。 基本套餐结算和找零。 使用优惠劵购买餐品结…

餐饮企业数据可视化大屏(智慧餐饮)

随着信息技术的深入发展,数据大屏的适用场景日益广泛,集工作汇报、实时监控和预测分析等功能于一身。 数据可视化的本质是视觉对话,数据可视化将数据分析技术与图形技术结合,清晰有效地将分析结果信息进行解读和传达。 当前很多餐…

163邮箱和qq邮箱如何开启pop和IMAP授权

首先是163邮箱,首先在主页上选择设置在设置里选择接下来就要开启权限,打钩就行了选择客户端授权密码,设置在第三方邮件的登录密码,这个密码就是在第三方客户端登陆的密码。 QQ邮箱同样先选择设置,然后选择账户&#xf…

在Outlook2007中设置QQ邮箱为IMAP/SMTP服务器

写Outlook设置QQ邮箱的攻略很多,但是都设置成POP3服务器。原本以为设置IMAP服务器流程一致,没想到低估了outlook和腾讯的麻烦程度。搞了一上午终于正确设置,写下来给有需要的人参考。 ——————————————————————————…

oracle qq邮箱不能用,QQ邮箱怎么不能用?QQ邮箱崩了官方公告

很久不用一次的QQ邮箱出现了大规模的崩溃,在5月6日突然有小伙伴反映,QQ邮箱PC端出现报错,就算是换了浏览器也没有用,那么这究竟是什么情况?我们可以从官方给出的公告来了解,遇到这个问题的用户一起来看看吧…

语音识别使用推荐(讯飞、百度、腾讯、云知声等)

科大讯飞 http://www.xfyun.cn/default/online_demo 百度 https://www.baidu.com/link?urlGBbcO2NttzpFelhAWOSqrjSJ7EHyuFUT_R4c3PXMfVa&wd&eqiddbc31d4600009c600000000559e45bac 腾讯 https://cloud.tencent.com/product/asr 云知声 http://dev.hivoice.cn/ 推…

科大迅飞语音听写(流式版)WebAPI,Web前端、H5调用 语音识别,语音搜索,语音听写

前言 由于公司有个Web项目需要用到语音搜索功能,找了一些第三方库都不太理想,要么语音识别速度很慢,要么不能精确识别等等,最后选择了迅飞语音(迅飞语音听写(流式版)WebAPI)。迅飞语…

安卓接入讯飞语音识别

#因为该项目不适合图形展示,所以无图 需要使用录音功能,那么虚拟机是不行的,只能使用真机测试 集成到项目中,需要将讯飞SDK里的内容搬到项目对应位置 在AndroidMainfest.xml中添加相应权限,安卓多少版本需要在代码中动…

腾讯、百度、讯飞 语音识别

一、腾讯语音识别—一句话语音识别 1、账号申请 (1)搜索腾讯云官网 https://cloud.tencent.com/?fromSourcegwzcw.2212127.2212127.2212127&utm_mediumcpd&utm_idgwzcw.2212127.2212127.2212127 (2)打开语音识别 腾…

js pink老师

JS 基础 输入和输出语法 向body输出内容 document.write("<h1>眼泪为你唱歌</h1>")窗口弹出内容 alert("将军")控制台打印内容 console.log("勇敢的面对");输入语句 prompt("蓝色的雨")输入语句输出到页面 const n…

新增WebDB和ChatGPT组件,支持对ChatGPT资产进行纳管,JumpServer堡垒机v3.5.0发布

2023年7月24日&#xff0c;JumpServer开源堡垒机正式发布v3.5.0版本。在这一版本中&#xff0c;新生代数据库连接组件——问题终结者Chen强势来袭&#xff0c;替代原有的OmniDB组件&#xff0c;在兼容旧版本的同时&#xff0c;解决了旧组件性能不足的问题&#xff0c;为用户提供…

新增 WebDB 和 ChatGPT 组件,支持对 ChatGPT 资产进行纳管,JumpServer 堡垒机 v3.5.0 发布

▲图 1 新增 Web 可视化数据库连接组件 Chen&#xff0c;替代原有的 OmniDB 组件 2. 新增 GPT 资产连接组件 Kael&#xff0c;支持纳管 ChatGPT 资产 在 JumpServer v3.5.0 版本中&#xff0c;新增 Kael 组件。该组件集成了 GPT 平台&#xff0c;支持对 ChatGPT 资产进行纳管…

毕业设计\毕业论文论文下载查询\查重降重\PPT工具合集

目录 各类工科毕业设计源码下载 论文查询\下载 广西壮族自治区图书馆 国家哲学社会科学文献中心 OALib 查重 万方免费查重&#xff08;应届生免费一次&#xff09; 降重 秘塔写作猫 火龙果写作 PDF工具 PDF Shaper 思维导图 GitMind 开题报告\答辩 PPT 第一pp …

android绑定两个ip,安卓手机模拟器如何多开切换IP防封号的最新方法介绍

原标题&#xff1a;安卓手机模拟器如何多开切换IP防封号的最新方法介绍 很多手游玩家、工作室和网吧用户想在电脑上登手机游戏&#xff0c;其实在电脑上装一个手机模拟器就可以了&#xff0c; 而且可以改不同的IP地址&#xff0c;实现游戏无限多开&#xff0c;今天小编就来为大…

手机上什么App能连接mysql_这款APP让你的手机瞬间变身服务器,php+mysql,太硬核了!...

话不多说&#xff0c;开搞。 舞剑前面介绍了两款 Web 前端编辑神器&#xff0c;一款是 HopWeb&#xff0c; 适合新手开发小型项目&#xff0c;一款是 EasyWeb&#xff0c;适合进阶开发大型项目。 不管是小型项目还是大型项目&#xff0c;最终目的都是为了上线&#xff0c;这两款…

AndroidStudio连接不上真机的全面分析(真的超详细不是你打我)

前言 写这篇文章之前呢&#xff0c;我只想说我心很累。今天码代码码的好好的&#xff0c;结果在码好之后进行真机测试的时候突然发现连不上手机了 WDNMD&#xff01;&#xff01;&#xff01;本来被代码就搞得焦头烂额&#xff0c;这个时候仿佛我的手机也不嫌事大一般&#xf…

google android模拟器多系统,Android模拟器安装教程_体验google_Android系统手机

1、下载Android SDK&#xff1a;SDK由官方网站提供,官方下载地址&#xff1a;http://dl.google.com/android/android-sdk_r05-windows.zip (大小22M&#xff0c;如果点击不能下载&#xff0c;请复制地址到下载软件中进行下载)要了解更多也可以访问官方网站&#xff1a;http://d…

学妹跑过来抱着我的胳膊让我帮她在Linux上装jdk【手把手教学】

在Linux上装jdk 首先需要个安装包查看下默认的版本号解压jdk压缩包修改/etc/profile刷新/etc/profile修改 .bash _profile刷新.bash_profile查看版本 首先需要个安装包 下载较慢&#xff0c;直接用Xftp传一个就行了&#xff08;直接拉着拖拽过去就行&#xff09; 查看下默认…

我是如何利用闲置手机安装 centos7.0 linux发行版,实现一台内网服务器的

开始 首先你需要有一部闲置安卓手机(root)&#xff08;基于linux内核&#xff09;我的是 乐视x520 安装软件 linuxdeploy (一个运行在linux主线容器&#xff0c;linux发行版将运行在其中&#xff09; 缺点&#xff1a;无法使用 service , systemctl 命令&#xff0c;但是有…