1.项目简介
有一家连锁火锅店新店开张试业,全场的菜品都参与折扣活动,为了统计活动的销售情况以及客流情况,我们统计了一天的流水信息,其中包括三个excel表格,覆盖了包括收入、客流等内容。接下来需要我们通过对数据的筛选以及统计,来获得所需要的信息,实现数据的可视化。
2.数据简介
https://pan.baidu.com/s/1Rw32YY9wHhr1bVEtLDVjuQ
提取码:JKSD
打开网盘里的文件夹,其中共有‘表结构信息’、‘order’、‘bill’、‘shop’四个表格,‘表格结构信息’如下,涵盖的是其他‘order’、‘bill’、‘shop’三个表格的字段名称以及数据类型。
3.数据预处理
① 通过pandas函数,将‘表格结构信息’填入‘order’、‘bill’、‘shop’三个表格中
# coding:utf8
import pandas as pd
# 表格导入,修改列名。Bill表格
Bill = pd.read_csv(r'D:\pycharm\data\sql data\-bill.csv',header = None)
Bill.columns = ['日期','单号','店名','折扣','支付时间','桌号','人数']
print(Bill.tail())
# OrderDetail表格
OrderDetail = pd.read_csv(r'D:\pycharm\data\sql data\-order.csv',header = None)
OrderDetail.columns = ['单号','菜品','价格']
# ShopDetail表格
ShopDetail = pd.read_csv(r'D:\pycharm\data\sql data\-shop.csv',header = None)
ShopDetail.columns = ['店名','两人桌数','三人桌数','四人及以上桌数','总桌数']
②利用现有的数据,统计以下数据,以便用来做统计分析:
-创建单汇总金额表——billnumber(单号)、pay(金额)
-创建新单号详细表(NewBill)——Bill表所有字段、pay(金额)、rebate(折扣金额)
-创建新店面情况表(NewShopDetail)——ShopDetail所有字段、allseats(总座位数)
-创建新点菜明细表(NewOrderDetail)——shopname(店名)、OrderDetail表所有字段
-创建店汇总信息表(ShopTotal)——
店名: b.shopname
单数: b.billnumber的计数
人数: b.peoplecount的加总
折扣总金额: b.rebate的加总
店汇总金额: b.pay的加总
单均消费: b.pay的合计值/b.billnumber的计数值
人均消费: b.pay的合计值/b.peoplecount的合计值
总台数: s.alltable
总座位数: s.allseats
翻台率: b.billnumber的计数值/s.alltable
上座率: b.peoplecount的合计值/s.allseats
折扣率: b.rebate的合计值/b.pay的合计值
# 数据预处理 创建表格OrderGroup,汇总每一单的总价
#这里的"每个单号菜品的总价"是通过excel的sumif函数来计算的,然后生成副本2
bill_num = OrderDetail.drop_duplicates(subset= ['单号']) # 通过drop_duplicates()函数去重,取单一的单号
bill_sale = pd.read_csv(r'D:\pycharm\data\sql data\-order - 副本2.csv',header = None,encoding =</