Python实战项目 |
您所在的位置:网站首页 › 数据分析实战网站哪个好点的 › Python实战项目 |
项目背景
餐厅经营的好坏需要用数据来说明,如果一个餐厅生意惨淡,那么应该先收集最近的数据,然后进行数据分析,再对应相应出现的问题进行解决和做出对应的商业调整。今天开始我们分析一来家餐厅的数据。 拿到一个数据,第一步就是要进行数据预处理。我们经常遇见的数据存在噪声、冗余、关联性、不完整性等。 数据预处理的常见方法(1)数据清理:将数据中缺失的值补充完整、消除噪声数据、识别或删除离群点并解决不一致性。 (2)数据集成:将多个数据源中的数据进行整合并统一存储 (3)数据变换:通过平滑聚集、数据概化、规范化等方式将数据转换成适用于数据挖掘的形式 (4)数据归约:数据挖掘经常数据量很大,通过对数据集进行规约或简化,可以保持元数据的完整性,且数据归约后的结果与规约前的结果几乎相同。 这里我们简单介绍,不做深入解释。这不是我们今天的主要内容。 数据介绍我们的数据是一个餐厅订单,其中包括detail_id,order_id,dishes_id等一系列餐厅数据。拥有3个sheet,数据项大约1w左右。还有各种各样的美食和酒水,看的我流口水(蒜蓉生蚝,蒙古烤羊腿,桂圆枸杞鸽子汤,38度剑南春 ,美妙绝伦之白莲花,姜葱炒花蟹) 现在我们开始导入数据到notebook import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示 %matplotlib inline # 加载数据 data1 = pd.read_excel('D:\\meal_order_detail.xlsx',sheet_name='meal_order_detail1') data2 = pd.read_excel('D:\\meal_order_detail.xlsx',sheet_name='meal_order_detail2') data3 = pd.read_excel('D:\\meal_order_detail.xlsx',sheet_name='meal_order_detail3') 数据预处理 # 数据预处理(合并数据,NA等处理),分析数据 data = pd.concat([data1,data2,data3],axis=0) #按照行进行拼接数据 # data.head(5) data.dropna(axis=1,inplace=True) #按照列删除na列,并且修改源数据 data.info()接下来我们进行数据的简单统计 统计卖出菜品的平均价格 round(data['amounts'].mean(),2) #方法一:pandas自带函数 round(np.mean(data['amounts']),2) #方法二:numpy函数处理
结果如图所示,果然大家都爱吃白饭。。。 既然大家都爱吃白饭,那我们就直接可视化上面那个结果好了。 dishes_count.plot(kind='line',color=['r']) dishes_count.plot(kind='bar',fontsize=16) for x,y in enumerate(dishes_count): print(x,y) plt.text(x,y+2,y,ha='center',fontsize=12)如图,果然还是图更显而易见。 这一步首先我们的进行简单操作,我们求订单ID点菜数量Top10,因此分组order_id,counts求和,排序,前十。 统计单道菜消费总额 data['total_amounts'] =data['counts']*data['amounts']分组求和 dataGroup = data[['order_id','counts','amounts','total_amounts']].groupby(by='order_id') Group_sum = dataGroup.sum() #分组求和 sort_counts =Group_sum.sort_values(by='counts',ascending=False) sort_counts['counts'][:10].plot(kind='bar',fontsize=16) plt.xlabel('订单ID') plt.ylabel('点菜数量') plt.title('订单ID点菜数量Top10')也就是求消费金额。 sort_total_amounts =Group_sum.sort_values(by='total_amounts',ascending=False) sort_total_amounts['total_amounts'][:10].plot(kind='bar') plt.xlabel('订单ID') plt.ylabel('消费金额') plt.title('消费金额前10')以上就是对数据的简单认识和处理,通过作图让我们能够更加清晰的认识数据,加深了解数据之间的联系和区别 不同维度进行数据分析: 针对订单order_id: 什么菜最受欢迎 点菜的种类 点菜的数量 消费金额最大 平均消费 针对时间日期进行分析: 点菜量比较集中的时间 哪一天订餐量最大 星期几就餐人数最多 技术点: 拼接数据:pd.concat([列1,…]) 分组进行统计(分组求和) 排序,切片Top10 绘制柱状图走势和高度 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |