数据分析处理(八)

整个月中某天前十个菜品的数量

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, 中文的幼圆、隶书等等。
#di
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['place_order_time']=foodData['place_order_time'].apply(lambda x:pd.to_datetime(x).day)  
                        #把x数据转成datatime类型,然后取出天,并给原始数据进行修改。
dataGroup=foodData[['place_order_time','dishes_name']]   #重foodData中取出多个字段数据,为分组做好准备

data_sort=dataGroup.groupby(by='place_order_time')['dishes_name'].nunique() 
                                            #by后跟的是以作为同类,并以它作为基类分组,分完组后取出dishes_name的数据进行去重取值个数。
                                            #Pandas nunique() 用于获取唯一值的统计次数,相当于去重
day_index=data_sort.index   #取出时间day
name_value=data_sort.values  #取出对应的菜品数量
c_count=pd.DataFrame(name_value,index=day_index)  #重新组成新的DataFrame类型,准备对它进行排序操作
c_count.sort_values(0,ascending=False,inplace=True)   #以标签索引取出值,然后进行降序,并保存对原数据进行修改。
c_count[:10].plot.bar()  #取出前十进行绘图。

在这里插入图片描述
总结:
注意此题要求是每日菜品总数量,所以我们要做好数据处理,一定要考虑每日,那么得想分组,菜品那就得考虑去重,那么谁在前谁在后,也有非常必要的关系。这里我们做的是先分组,后取去重数量。因为确定好组,才可以对组的数据进行修改,如果先去重菜品,再分组,就会有大量数据流失,因为,每个组与组内不可以重复菜品,但是每个组与组之间是可以重复菜品的,因为我们是以天为基准,所以要先以天分组,然后去重。不能按月先去重再分组。这点是我们处理数据要注意的。
分析:
1.X轴表示一个月中对应的某一天,Y轴表示的是当天对应卖出的菜品的数量。
2.整体分布图来看。售出排名靠前的菜品数量基于140左右。
3.局部分布图来看,最高的是28号售出的140多点。
4由此结果。我们可以对应每日准备的菜品数量不要超过140太多。可以适当做好封顶数量,适当控制准备菜品的数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值