数据分析逻辑整理——餐厅数据

发布时间:2024-12-28 06:28

数字逻辑思维训练,提升数据分析能力 #生活技巧# #工作学习技巧# #数字技能培养#

1、先导包

import numpy as np # 导入numpy的包 import pandas as pd # 导入pandas的包 from matplotlib import pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 支持中文(指定默认字体为SimHei 黑体` 12345

2、读取数据(拿到数据后,了解数据字段信息,看是否有空值,数据是否有异常,比如是否含有:\r \n 等等)
3、处理数据(用一些方法,处理数据异常,比如连接数据,删除空值,替换空格等)

# read_excel(数据名) 用pandas读取数据 此数据里面有三个sheet_name表,所以都要读出来 data1 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail1') data2 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail2') data3 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail3') # data1 # concat()连接数据 axis=0 合并行 因为有三个表,所以要连接起来 data = pd.concat([data1,data2,data3],axis=0) # 连接数据,创建一个新的数据 print(data.info()) # 创建好新数据后,查看数据的信息 # 删除空列 axis=1:合并列 inplace=True:改变数据 data.dropna(axis=1,inplace=True) data 1234567891011

以上代码知识点整理
1、用pandas中的块【pd.read_文件扩展名(‘文件名.扩展名 ‘)】读取数据
2、如果此数据是excel,并且一张簿里面有多张表,要依次读取出来,后面加【sheet_name=’ 表名’】
3、因为有多张表,所以要用【concat()】方法连接数据。(此例中用该方法把三张表连接起来)
4、【axis=0】合并行(此例需要连接数据,所以合并行);【axis=1】合并列(此例需要删除空列,所以把空列都合并了)
5、【info()】 方法查看数据的信息
6、【dropna()】 方法删除数据信息
7、【inplace=True】方法改变数据,一般用于一些改变数据的操作方法之后

正式开始做题

1、计算菜品价格平均值

# 据我们观察,数据的菜品名称里面有\n \r,所以要先去除它们 # apply()是声明匿名函数 括号里面一般加匿名函数 rstrip()函数去除右边\n,\r data['dishes_name'] = data['dishes_name'].apply(lambda x:x.rstrip()) # 接着算平均价格会有重复,所以先进行菜品名称去重 # drop_duplicates()函数去重 subset选中某一个字段 data_dishes_name = data.drop_duplicates(subset=['dishes_name']) # 方法一:直接用pandas里面的mean()函数求平均值 # mean_amounts = data_dishes_name['amounts'].mean() # 对去重后的结果求平均值 # 方法二:用numpy里面的np的mean方法求平均数 mean_amounts = np.mean(data_dishes_name['amounts']) # 对去重后的结果求平均值 mean_amounts 123456789101112

题意分析
我们的目的是统计菜品的平均价格
从这句话中我们得出以下信息:
1)对象:菜品名称;2)干什么:计算平均价格
注意:根据我们观察,数据的菜品名称里面有\n \r,所以要先去除它们;接着算平均价格会有重复,所以先进行菜品名称去重

以上代码知识点整理
1、声明匿名函数:【apply()】方法
2、去除右侧特殊字符:【rstrip()】
3、字段去重:【drop_duplicates()】
4、选中某一个字段:【subset=[’ ']】
5、求平均值:【mean()】(用numpy和pandas都能求平均值)

2、词频统计:统计什么菜最受欢迎(TOP:10)

dishes_count = data['dishes_name'].value_counts()[:10] dishes_count.plot(kind='bar',legend=True) # legend表示图例 # dishes_count.plot.bar() # bar表示垂直柱状图 # dishes_count.plot.barh() # barh表示水平柱状图 1234

题意分析
我们的目的是统计最受欢迎的10道菜
从这句话中,我们得出以下信息:
1)对象:菜名;2)干什么:给菜名计数;3)统计方法:柱状图(一般统计数量,用柱状图更直观)
以上代码知识点整理
1、取数据字段:【之前定义的新数据变量名[‘字段名’] 】(此例中我们定义的新数据变量名为data,菜名字段为disher_name)
2、计数:.【value_counts()】;
此例中统计前10道菜,所以加个索引【value_counts()[:10]】
3、画图:【.plot(kind=‘图的类型’,legend=True)】
(此例中,kind代表图的类型,legend=True代表图例)
或【.plot.图的类型()】()里面可加title=’ ‘;legend=’ ‘;label=’ '等
4、垂直柱状图:【bar()】;水平柱状图:【barh()】

3、单个订单中菜品数量最多(TOP 10)

data_order_id = data['order_id'].value_counts()[:10] # value_counts是统计次数 # data_order_id.plot.bar() # bar()是垂直柱状图 data_order_id.plot.barh() # barh()是水平柱状图 123

题意分析
我们的目的是统计单个订单中菜品数量最多前10名
从这句话中,我们得出以下信息:
1)对象:订单ID;2)干什么:统计次数

以上代码知识点整理
1、【value_counts()】 统计次数,可加索引
2、【plot】绘制图像
3、【bar()】 垂直柱状图
4、【barh()】 水平柱状图

4、计算单一菜品总价;哪个订单ID点菜份数最多(TOP:10)

# 总价 = 单价 * 数量 data['total_amounts'] = data['amounts'] * data['counts'] # 计算单一菜品总价 # data[data['counts']>1] # 条件;大于1 dataGroup = data[['order_id','counts','amounts','total_amounts']] # 确定数据组 订单id 数量 单价 总价 data_sort = dataGroup.groupby(by='order_id').sum() # 给数据组分组并求和 print(data_sort) # sort_values()表示按by=''里面的字段排序 data_sort.sort_values(by='counts',ascending=False,inplace=True) # ascending=False 表示倒序 print(data_sort['counts'][:10]) # 订单ID点菜数量最多前十 data_sort['counts'][:10].plot.bar() # 绘制柱状图 12345678910

题意分析
我们的目的是统计通过计算单一菜品总价,确定哪个订单点菜最多
从这句话中,我们得到以下信息:
1)对象:订单ID;2)干什么:计算总价,确定份数

以上代码知识点整理
1、计算总价:【总价=单价*数量】
2、确定数据组:【两个[[ ]]嵌套】
3、确定数据组之后分组:【groupby(by=‘字段名’)】 其中,groupby是分组 by=是选定按什么字段分组
4.求和:【.sum()】
5、排序:【sort_values(by=‘字段名’,ascending=False,inplace=True)】
其中,sort_values是按by选定的字段排序,ascending表示倒序,inplace=True表示改变数据

网址:数据分析逻辑整理——餐厅数据 https://www.yuejiaxmz.com/news/view/590604

相关内容

从零开始的游戏运营数据分析生活?如何构建数据分析的逻辑框架?
餐厅食材采购数据分析说明
《python数据分析与挖掘》
数据分析中的数据清洗方法策略
商业数据分析从入门到入职(1)商业数据分析综述
EXCEL函数及数据分析技巧整理备用
大学生消费数据分析怎么做
python数据分析
人人都是数据分析师:到底什么是数据分析?如何进行数据分析?
python excel数据分析师职业技能

随便看看