数据分析之超市订单分析

数据分析方法实验:超市订单分析。
要求如下:
数据分析之超市订单分析_第1张图片
给定原数据如下图所示:
数据分析之超市订单分析_第2张图片
代码如下:

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)/~

你可能感兴趣的:(数据分析)