import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import to_datetime
%matplotlib notebook
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
data=pd.read_csv(r'附件.csv',engine='python')
data=data[data['销售日期']!=20150229]
data.head()
| 顾客编号 | 大类编码 | 大类名称 | 中类编码 | 中类名称 | 小类编码 | 小类名称 | 销售日期 | 销售月份 | 商品编码 | 规格型号 | 商品类型 | 单位 | 销售数量 | 销售金额 | 商品单价 | 是否促销 |
---|
0 | 0 | 12 | 蔬果 | 1201 | 蔬菜 | 120109 | 其它蔬菜 | 20150101 | 201501 | DW-1201090311 | | 生鲜 | 个 | 8.0 | 4.0 | 2.0 | 否 |
---|
1 | 1 | 20 | 粮油 | 2014 | 酱菜类 | 201401 | 榨菜 | 20150101 | 201501 | DW-2014010019 | 60g | 一般商品 | 袋 | 6.0 | 3.0 | 0.5 | 否 |
---|
2 | 2 | 15 | 日配 | 1505 | 冷藏乳品 | 150502 | 冷藏加味酸乳 | 20150101 | 201501 | DW-1505020011 | 150g | 一般商品 | 袋 | 1.0 | 2.4 | 2.4 | 否 |
---|
3 | 3 | 15 | 日配 | 1503 | 冷藏料理 | 150305 | 冷藏面食类 | 20150101 | 201501 | DW-1503050035 | 500g | 一般商品 | 袋 | 1.0 | 6.5 | 8.3 | 否 |
---|
4 | 4 | 15 | 日配 | 1505 | 冷藏乳品 | 150502 | 冷藏加味酸乳 | 20150101 | 201501 | DW-1505020020 | 100g*8 | 一般商品 | 袋 | 1.0 | 11.9 | 11.9 | 否 |
---|
sx=data[data['商品类型']=='生鲜']
yb=data[data['商品类型']=='一般商品']
sx_money=sx.groupby('销售日期',as_index=False)['销售金额'].sum()
yb_money=yb.groupby('销售日期',as_index=False)['销售金额'].sum()
sx_money['销售日期']=sx_money['销售日期'].astype("str")
yb_money['销售日期']=yb_money['销售日期'].astype("str")
yb_money['销售日期']=pd.to_datetime(yb_money['销售日期'],errors="raise")
sx_money['销售日期']=pd.to_datetime(sx_money['销售日期'],errors="raise")
time=pd.date_range(start='20150101',end='20150430')
df=time.to_frame()
df=df.rename(columns={0:'销售日期'})
sx_all=df.merge(sx_money,how="left")
yb_all=df.merge(yb_money,how="left")
yb_all=yb_all.fillna(0)
sx_all=sx_all.fillna(0)
x1=np.arange(1,121)
x2=np.arange(1,121)
plt.plot(x1,sx_all['销售金额'],label='生鲜')
plt.plot(x2,yb_all['销售金额'],label='一般商品')
plt.xlabel('销售天数')
plt.ylabel('销售金额')
plt.legend()
plt.show()
plt.savefig('./f1.png')
GroupbyMonth=data.groupby(['销售月份','大类名称'],as_index=False)['销售金额'].agg({'销售金额':'sum'})
li=[]
for i in range(4):
j=i
i=GroupbyMonth[GroupbyMonth['销售月份']==(201501+i)].sort_values(by='销售金额',ascending=False)
i['占比']=i['销售金额']/i['销售金额'].sum()*100
i=i[:10]
plt.figure()
plt.pie(i['占比'],autopct='%.2f%%',labels=i['大类名称'])
plt.title('第{}个月大类商品销售额占比'.format(j+1))
plt.savefig('./{}.png'.format(j))
data=pd.read_csv(r'附件.csv',engine='python')
data=data[data['销售日期']!=20150229]
data.head()