数据分析方法实验:超市订单分析。
要求如下:
给定原数据如下图所示:
代码如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data=pd.read_csv('F:/学习文件/数据分析方法/order.csv',engine='python')
#查看基本的订单信息
print(data.describe())
print(data.info())
#异常值处理
id=data.loc[:,"销量"]>0 #将所有销量大于0的行提取出来,剔除异常值
data=data.loc[id,:]
def Chanpinleibie():##销量前20的畅销产品类别
print("..........销量前20的畅销产品类别..........")
ans=data.groupby(by="类别ID")['销量'].sum().sort_values(ascending=False)[:20]
print(ans)
def Chanpin():##销量前20的畅销产品
print("..........销量前20的畅销产品..........")
ans=data.groupby(by="商品ID")['销量'].sum().sort_values(ascending=False)[:20]
print(ans)
def Get_money():#求不同门店的销售额占比,绘制饼图
print("..........计算销售额..........")
data.loc[:,'销售总金额']=data.loc[:,'单价']*data.loc[:,'销量']
ans=data.groupby(by="门店编号")["销售总金额"].sum().sort_values(ascending=False)
print("每个门店的销售额占比为:")
ret=ans/ans.sum()*100.0
cnt=0
for i in ret:
print(ret.index[cnt]+" "+'{:.5f}%'.format(i))
cnt+=1
##绘制饼图
plt.title("不同门店的销售额占比")
plt.pie(ret.values, labels=ret.index)
plt.show()
def Gaofeng():#求超市的客流高峰期
#观察发现,有的订单是重复的,所以需要对订单去重
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.index
y=ans.values
##绘制条形图
plt.bar(x,y)
plt.xlabel("时间")
plt.ylabel("订单数")
plt.show()
print("不同时间段订单总数为:")
print(ans)
ps:代码可能会有不对的地方,大家借鉴着看吧。我写这篇博客的目的就是记录一下python的用法。
努力加油a啊,(o)/~