美文网首页
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