数据分析简单案例

# 导包
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示
plt.rcParams['axes.unicode_minus'] = False   #解决符号无法显示

data = pd.read_excel('../data/work.xlsx')
data.head(30)

订单id菜品大类菜品id菜品名数量单价用户id01肉类1肉11100100011肉类2肉21200100021肉类3肉31300100031肉类4肉41400100041菜类5菜11500100051菜类6菜21600100061菜类7菜31700100072肉类1肉11100100182肉类2肉21200100192肉类3肉313001001102肉类4肉414001001112菜类5菜115001001122菜类6菜216001001132菜类7菜317001001143肉类1肉111001002153肉类2肉212001002163肉类3肉313001002173肉类4肉414001002183菜类5菜115001002193菜类6菜216001002203菜类7菜317001002

# 统计每个菜品的销售数量
sales_count = data.groupby('菜品名')['数量'].sum().reset_index()

# 统计每个菜品的销售额
sales_amount = data.groupby('菜品名').apply(lambda x: (x['数量'] * x['单价']).sum()).reset_index(name='销售额')

# 合并销售数量和销售额数据
sales_analysis = pd.merge(sales_count, sales_amount, on='菜品名')

# 根据销售数量对菜品排序
sales_analysis = sales_analysis.sort_values(by='数量', ascending=False)

# 打印销售数量和销售额前10的菜品
top_10_sales = sales_analysis.head(10)
print("销售数量前10的菜品:")
print(top_10_sales[['菜品名', '数量']])
print("\n销售额前10的菜品:")
print(top_10_sales[['菜品名', '销售额']])

销售数量前10的菜品:
  菜品名  数量
0  肉1   3
1  肉2   3
2  肉3   3
3  肉4   3
4  菜1   3
5  菜2   3
6  菜3   3

销售额前10的菜品:
  菜品名   销售额
0  肉1   300
1  肉2   600
2  肉3   900
3  肉4  1200
4  菜1  1500
5  菜2  1800
6  菜3  2100import matplotlib.pyplot as plt


# 统计每个菜品的销售数量和销售额
sales_count = data.groupby('菜品名')['数量'].sum()
sales_amount = data.groupby('菜品名').apply(lambda x: (x['数量'] * x['单价']).sum())

# 根据销售数量排序
sales_count = sales_count.sort_values(ascending=False)

# 绘制销售数量的条形图
plt.figure(figsize=(10, 6))
plt.bar(sales_count.index, sales_count.values)
plt.xlabel('菜品名')
plt.ylabel('销售数量')
plt.title('菜品销售数量')

# 根据销售额排序
sales_amount = sales_amount.sort_values(ascending=False)

# 绘制销售额的条形图
plt.figure(figsize=(10, 6))
plt.bar(sales_amount.index, sales_amount.values)
plt.xlabel('菜品名')
plt.ylabel('销售额')
plt.title('菜品销售额')

# 展示图形
plt.show()

 

# 根据菜品类别进行分组,并计算每个类别的总销售额
sales_by_category = data.groupby('菜品大类').apply(lambda x: (x['数量'] * x['单价']).sum())

# 根据销售额排序
sales_by_category = sales_by_category.sort_values(ascending=False)

# 绘制销售额的条形图
plt.figure(figsize=(5, 9))
plt.bar(sales_by_category.index, sales_by_category.values)
plt.xlabel('菜品类别')
plt.ylabel('销售额')
plt.title('不同类别菜品销售情况')

# 展示图形
plt.show()

# 根据用户ID进行分组,并计算每个用户的购买菜品数量和消费总额
user_consumption = data.groupby('用户id').agg({'数量': 'sum', '单价': 'sum'})

# 打印用户消费情况
print(user_consumption)

      数量    单价
用户id          
1000   7  2800
1001   7  2800
1002   7  2800

# 绘制条形图
plt.figure(figsize=(5, 9))
plt.bar(user_consumption.index, user_consumption['单价'])
plt.xlabel('用户ID')
plt.ylabel('消费总额')
plt.title('用户消费情况')
plt.show()

 

# 将菜品按照单价分为不同的价格区间
data['价格区间'] = pd.cut(data['单价'], bins=[0, 100, 200, 300, 400, 500, float('inf')], labels=['0-100', '100-200', '200-300', '300-400', '400-500', '500+'])

# 按照价格区间进行分组,并统计每个价格区间内的销售数量
price_analysis = data.groupby('价格区间')['数量'].sum()

# 绘制条形图
plt.bar(price_analysis.index, price_analysis.values)
plt.xlabel('价格区间')
plt.ylabel('销售数量')
plt.title('高价和低价菜品销售情况')
plt.show()

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值