1 import pandas as pd 2 import numpy as np 3 4 # 计算每日营业额 加载数据 5 detail = pd.read_excel("./meal_order_detail.xlsx") 6 print("detail: \n", detail) 7 print("detail的列名称: \n", detail.columns) 8 9 # 1、计算出每个产品的营业额 10 detail.loc[:, "pay"] = detail.loc[:, "counts"] * detail.loc[:, "amounts"] 11 print(detail) 12 13 # 2、构建日数据 14 # 先将时间数据转化为pandas默认支持的时间序列数据 15 detail.loc[:, "place_order_time"] = pd.to_datetime(detail.loc[:, "place_order_time"]) 16 17 # 通过列表推导式来获取日属性 18 detail.loc[:, "day"] = [i.day for i in detail.loc[:, "place_order_time"]] 19 20 print(detail) 21 22 # 3、计算营业额——按照日进行分组,统计pay的sum 23 res = detail.groupby(by="day")["pay"].sum() 24 # res = detail.groupby(by="day")["pay"] # 一个对象 25 26 print("res: \n", res)
1 # 求这家店最火的菜品,以及售卖份数 2 import pandas as pd 3 4 # 加载数据 5 detail = pd.read_excel("./meal_order_detail.xlsx") 6 print("detail: \n", detail) 7 print("detail的列名称: \n", detail.columns) 8 9 # 先将dishes_name转化为category类型 10 detail.loc[:, "dishes_name"] = detail.loc[:, "dishes_name"].astype("category") 11 12 # 统计describe分析 13 print("对于菜品最火及售卖份数的统计分析: \n", detail.loc[:, "dishes_name"].describe()) 14 15 # 白饭/大碗不算菜品 16 # 删除白饭的行 17 bool_index = detail.loc[:, "dishes_name"] == "白饭/大碗" 18 print("bool_index") 19 20 # 确定哪些行是白饭大碗 21 drop_index_list = detail.loc[bool_index, :].index 22 23 # 删除 24 detail.drop(labels=drop_index_list, axis=0, inplace=True) 25 26 # 保留法 27 bool_id = detail.loc[:, "dishes_name"] != "白饭/大碗" 28 29 # 保留True的行 30 detail = detail.loc[bool_id, :] 31 32 # 再去统计菜品的deccribe 33 34 # 先将dishes_name转化为category类型 35 detail.loc[:, "dishes_name"] = detail.loc[:, "dishes_name"].astype("category") 36 37 # 统计describe分析 38 print("对于菜品最火以及售卖份数的统计分析: \n", detail)