【數據分析&數據挖掘】連鎖超市數據分析案例


 1 import pandas as pd
 2 
 3 # 加載數據
 4 data = pd.read_csv("./order.csv", encoding="ansi")
 5 # print("data: \n", data)
 6 print("data的列索引: \n", data.columns)
 7 
 8 # 銷量中存在銷量為0, 或者銷量<0的數據
 9 # 刪除不正確的數據
10 # ——保留銷量>0的數據據
11 bool_index = data.loc[:, "銷量"] > 0
12 data = data.loc[bool_index, :]
13 
14 # 1、哪些類別的商品比較暢銷?
15 # 按照類別id進行分組, 統計銷量的sum
16 # sort_values 排序,默認是升序排序
17 # by 指定按照某列的數據進行排序
18 # ascending = True 升序
19 res = data.groupby(by="類別ID")["銷量"].sum().sort_values(ascending=False).head(10)
20 res = pd.pivot_table(
21     data=data,
22     index="類別ID",
23     # columns="類別ID",
24     values="銷量",
25     aggfunc="sum"
26 ).sort_values(by="銷量", ascending=False).head(10)
27 print("res: \n", res)
28 
29 # 2、哪些商品比較暢銷
30 res = data.groupby(by="商品ID")["銷量"].sum().sort_values(ascending=False).head(10)
31 res = pd.pivot_table(
32     data=data,
33     index="商品ID",
34     values="銷量",
35     aggfunc="sum"
36 ).sort_values(by="銷量", ascending=False).head(10)
37 print("res: \n", res)
38 
39 # 3、求不同門店的銷售額占比
40 # (1)先計算每一個商品的銷售額
41 data.loc[:, "銷售額/單個商品"] = data.loc[:, "單價"] * data.loc[:, "銷量"]
42 
43 # (2)按照門店編號進行分組,統計每個商品的銷售額的sum和
44 all_ = data.groupby(by="門店編號")["銷售額/單個商品"].sum()
45 
46 print(all_)
47 # (3)計算占比
48 print("各個門店的占比為:", (all_ / all_.sum()).apply(lambda x: format(x, ".2%")))
49 
50 
51 # 4、哪個時間段是超市的客流高峰期?
52 # (1)因為多個商品對應一個訂單ID,每一個訂單ID為一個人,需先對ID進行去重
53 # 數據的去重
54 # subset 需要去重的列
55 # inplace = True 修改原數據
56 data.drop_duplicates(subset='訂單ID', inplace=True)
57 print("去重之后的數據: \n", data)
58 
59 # (2)獲取小時屬性
60 data.loc[:, "成交時間"] = pd.to_datetime(data.loc[:, "成交時間"])
61 
62 data.loc[:, "hour"] = [i.hour for i in data.loc[:, "成交時間"]]
63 
64 print(data)
65 
66 # (3)按照小時分組,統計每個小時內訂單的數量
67 res = data.groupby(by="hour")["訂單ID"].count().sort_values(ascending=False)
68 
69 print("res: \n", res)
70 
71 # sort_index() 按照行索引的大小進行排序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM