现有一个点餐数据meal_order_detail.xlsx文件,该文件的数据列包括order_id(订单编号)、dishes_id(菜品编号)、dishes_name(菜品名称)、counts(菜品数量)、amounts(菜品单价)、place_order_time(下单时间)等,请完成以下数据分析任务。 (1)统计每列缺失值个数。 (2)删除重复数据。 (3)对place_order_time(下单时间)数据进行处理,得到月份和日期数据。 (4)抽取place_order_time(下单时间)为1-3日的数据,绘制下单数量柱状图。 (5)统计菜品个数,将菜品价格进行排序,找到价格最高的菜品。 (6)找出最受欢迎的菜品。 (7)统计每一订单的点餐数量和总价格。源代码
时间: 2023-12-14 08:40:08 浏览: 158
meal-order-detail.xlsx
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据集
df = pd.read_excel('meal_order_detail.xlsx')
# 统计每列缺失值个数
print('每列缺失值个数:')
print(df.isnull().sum())
# 删除重复数据
df.drop_duplicates(inplace=True)
# 对place_order_time数据进行处理,得到月份和日期数据
df['month'] = pd.DatetimeIndex(df['place_order_time']).month
df['day'] = pd.DatetimeIndex(df['place_order_time']).day
# 抽取place_order_time为1-3日的数据,绘制下单数量柱状图
df_1_3 = df[(df['day'] >= 1) & (df['day'] <= 3)]
plt.figure(figsize=(8,6))
plt.bar(df_1_3['day'], df_1_3['counts'])
plt.title('Order Counts from 1st to 3rd')
plt.xlabel('Day')
plt.ylabel('Counts')
plt.show()
# 统计菜品个数,将菜品价格进行排序,找到价格最高的菜品
print('菜品个数:', len(df['dishes_name'].unique()))
df_price = df[['dishes_name', 'amounts']].drop_duplicates()
df_price.sort_values(by='amounts', ascending=False, inplace=True)
print('价格最高的菜品:', df_price.iloc[0]['dishes_name'])
# 找出最受欢迎的菜品
df_dish_counts = df.groupby(['dishes_name']).agg({'counts': 'sum'})
df_dish_counts.sort_values(by='counts', ascending=False, inplace=True)
print('最受欢迎的菜品:', df_dish_counts.index[0])
# 统计每一订单的点餐数量和总价格
df_order = df.groupby(['order_id']).agg({'counts': 'sum', 'amounts': 'sum'})
print('每一订单的点餐数量和总价格:')
print(df_order)
```
阅读全文