import pandas as pd
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=Falsedata=pd.read_csv('F:/學習文件/數據分析方法/order.csv',engine='python')#查看基本的訂單信息print(data.describe())print(data.info())#異常值處理id=data.loc[:,"銷量"]>0#將所有銷量大于0的行提取出來,剔除異常值
data=data.loc[id,:]defChanpinleibie():##銷量前20的暢銷產品類別print("..........銷量前20的暢銷產品類別..........")ans=data.groupby(by="類別ID")['銷量'].sum().sort_values(ascending=False)[:20]print(ans)defChanpin():##銷量前20的暢銷產品print("..........銷量前20的暢銷產品..........")ans=data.groupby(by="商品ID")['銷量'].sum().sort_values(ascending=False)[:20]print(ans)defGet_money():#求不同門店的銷售額占比,繪制餅圖print("..........計算銷售額..........")data.loc[:,'銷售總金額']=data.loc[:,'單價']*data.loc[:,'銷量']ans=data.groupby(by="門店編號")["銷售總金額"].sum().sort_values(ascending=False)print("每個門店的銷售額占比為:")ret=ans/ans.sum()*100.0cnt=0for i in ret:print(ret.index[cnt]+" "+'{:.5f}%'.format(i))cnt+=1##繪制餅圖plt.title("不同門店的銷售額占比")plt.pie(ret.values, labels=ret.index)plt.show()defGaofeng():#求超市的客流高峰期#觀察發現,有的訂單是重復的,所以需要對訂單去重data.drop_duplicates(subset='訂單ID',inplace=True)#轉換成交時間為pandas默認的時間類型data.loc[:,'成交時間']= pd.to_datetime(data.loc[:,'成交時間'])#提取成交時間的中的小時,客流量高峰期精確到小時data.loc[:,'小時']=[i.hour for i in data.loc[:,'成交時間']]#按照小時分組,統計每個小時的訂單量ans=data.groupby(by="小時")['訂單ID'].count()ans=ans.sort_index(ascending=True)plt.title("不同時間訂單情況")x=ans.indexy=ans.values##繪制條形圖plt.bar(x,y)plt.xlabel("時間")plt.ylabel("訂單數")plt.show()print("不同時間段訂單總數為:")print(ans)