美文网首页
Adventure Works Cycles公司月度销售情况分析

Adventure Works Cycles公司月度销售情况分析

作者: 她不在00 | 来源:发表于2021-03-22 17:08 被阅读0次

一、项目背景介绍

Adventure Works Cycles是基于微软AdventureWorks示例数据库的虚拟公司,是一家大型跨国制造公司。该公司向北美,欧洲和亚洲商业市场生产和销售金属和复合材料自行车。

2019年12月业务部门需要向上级汇报11月份的自行车销售情况,为精细化运营提供数据支持,精准定位目标客户群体。

二、分析目的

1、如何制定销售策略,调整产品结构,才能保持高速增长,获取更多的收益,占领更多市场份额,是公司最关心的问题。

2、报告通过对整个公司的自行车销量持续监测和分析,掌握公司自行车销售状况、走势的变化,为客户制订、调整和检查销售策略,完善产品结构提供依据。

三、分析思路

分析思路

四、分析结果展示 Power BI & PPT

Power BI成果展示 分析报告展示

五、分析过程

5.1 从整体的角度:分析2019.1—2019.11自行车整体销售表现

分析思路

5.1.1 观察数据,选择合适的数据处理方式

源数据 数据字典

观察数据,这个问题只需要用到销量订单表,该表数据量超过10万条,且需要对数据进行较为复杂的转化,所以这里选择了Python处理数据。

5.1.2 导入数据,做数据清洗——增加月份信息和只保留自行车的销售信息


#增加create_year_month月份字段。按月维度分析时使用

gather_customer_order['create_year_month']=gather_customer_order['create_date'].apply(lambda x:x.strftime('%Y-%m'))

#筛选产品类别为自行车的数据

gather_customer_order = gather_customer_order.loc[gather_customer_order['cplb_zw'] == '自行车']

5.1.3 按照月份分组求和,求出每月销量和销售额,并进行环比计算


#每月订单数量和销售金额,用groupby创建一个新的对象,需要将order_num、sum_amount求和

overall_sales_performance = gather_customer_order.groupby('create_year_month').agg({'order_num':sum,'sum_amount':sum}).sort_index(ascending = False).reset_index()

#求每月自行车销售订单量环比,观察最近一年数据变化趋势

#环比是本月与上月的对比,例如本期2019-02月销售额与上一期2019-01月销售额做对比

order_num_diff = list((overall_sales_performance.order_num.diff()/overall_sales_performance.order_num)/-1)

order_num_diff.pop(0) #删除列表中第一个元素

order_num_diff.append(0) #将0新增到列表末尾

#将环比转化为DataFrame

overall_sales_performance = pd.concat([overall_sales_performance,pd.DataFrame({'order_num_diff':order_num_diff})],axis = 1)

# 保存处理后的新表

5.1.4 制作Power BI图表

整体销量表现

5.1.5 分析报告展示

PPT展示

通过观察图表数据,得到2个结论:

①近11个月,11月自行车销售量最多,为3316辆;较10月增长7.1% ;

②近11个月,11月自行车销售金额最高,为6190万元,较10月增长8.7%;自行车销售金额与销售数量 趋势一致;

5.2 其他几个方向的分析过程,暂不一一展开

六、总结:对知识点的考察

6.1 python连接mysql的方法


import pymysql

pymysql.install_as_MySQLdb()

from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://用户名:密码@ip地址/数据库名称?charset=gbk')

sql ='select * from tb_1'

df = pd.read_sql(sql,engine)

6.2 将数据存储到mysql的方法


engine = create_engine('mysql+pymysql://用户名:密码@ip地址/数据库名称?charset=gbk')

 dataframe.to_sql ( 表名, engine, if_exists = , index = False )

如果表格已经存在的情况下,有三种处理方法:

if_exists = {'fail', 'replace', 'append'}, default 'fail'

fail:引发ValueError。

replace:在插入新值之前删除表。

append:将新值插入现有表。

6.3 匿名函数lambda和字符串转时间函数strptime() 使用

lambda x:x.strftime('%Y-%m')

6.4函数agg的用法及适用范围

一般跟groupby联合使用,与apply的最大区别是,agg可以对同一列进行多个聚合函数操作,也可以对不同列使用不同的聚合函数操作

6.5 diff() 函数的使用

diff() 函数,两行之间做差

shift() 函数,相邻两行进行加减乘除

6.6 DataFrame中的loc,iloc,at,iat的用法和区别

① loc和iloc函数都是用来选择某行的,iloc与loc的不同是:iloc是按照行索引所在的位置来选取数据,参数只能是整数。而loc是按照索引名称来选取数据,参数类型依索引类型而定;

② at和iat函数是只能选择某个位置的值,iat是按照行索引和列索引的位置来选取数据的。而at是按照行索引和列索引来选取数据;

③ loc和iloc函数的功能包含at和iat函数的功能。

相关文章

网友评论

      本文标题:Adventure Works Cycles公司月度销售情况分析

      本文链接:https://www.haomeiwen.com/subject/bstthltx.html