数据分析处理(六)

每日菜的总价格

 import numpy as np
import pandas as pd  #导入pandas用于表格操作
import xlrd  #导入xlrd用于获取一个表格里多个sheet
from matplotlib import pyplot as plt#导入pyplot用于绘图
from datetime import datetime as dt

# 解决中文乱码问题
#sans-serif就是无衬线字体,是一种通用字体族。
#常见的无衬线字体有 Trebuchet MS, Tahoma, Verdana, Arial, Helvetica, 中文的幼圆、隶书等等。

import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体
mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号
table1=pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail1')
table2=pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail2')
table3=pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail3')
foodData=pd.concat([table1,table2,table3],axis=0,sort=False) #合并
foodData['total_price']=foodData['counts']*foodData['amounts'] #设置新的字段为总价。
foodData['place_order_time']=foodData['place_order_time'].apply(lambda x:pd.to_datetime(x).day) #取出天给日期字段下的值重新赋值
dataGroup=foodData[['place_order_time','total_price']]  #取出多个字段构建构建新的dataFrame类型,为分组做好准备。
data_sort=dataGroup.groupby(by='place_order_time').sum()#以place_order_time分组后的数据进行求和处理。
data_sort.sort_values('total_price',ascending=False,inplace=True)  #取值排序
data_sort[:10].plot.bar()   #拿排序好的数据进行绘图

​

在这里插入图片描述
数据分析:
1.X为哪一天,Y为菜的总价格。
2.从前十来总体分布图来看排名靠前基于30000-40000之间,可以看出饭店一天的总收入分布趋势。最火爆的时间与数量。
3.根据最火爆时间并对其分析原因,做进一步改善,可以做的更好。

每日单盘均价

foodData['place_order_time']=foodData['place_order_time'].apply(lambda x:pd.to_datetime(x).day)
dataGroup=foodData[['place_order_time','amounts']]
data_sort=dataGroup.groupby(by='place_order_time').mean()  #求平均的方法
data_sort.sort_values('amounts',ascending=False,inplace=True)
data_sort[:10].plot.bar()
换汤不换药,类似上面,不做详解

在这里插入图片描述

每天售出盘子的数量

foodData['place_order_time']=foodData['place_order_time'].apply(lambda x:pd.to_datetime(x).day)
dataGroup=foodData[['place_order_time','counts']]
print(type(dataGroup))
data_sort=dataGroup.groupby(by='place_order_time').sum()
data_sort.sort_values('counts',ascending=False,inplace=True)  #计算counts的数量,因为i它有的为1,有的不为1,所以计算它总数量才合理。
data_sort[:10].plot.bar()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值