精华内容
下载资源
问答
  • 电商数据分析项目总结

    千次阅读 2021-01-03 19:59:00
    ↑↑↑关注后"星标"Datawhale每日干货&每月组队学习,不错过Datawhale干货作者:牧小熊,华中农业大学,Datawhale原创作者订单数据作...

    ↑↑↑关注后"星标"Datawhale

    每日干货 & 每月组队学习,不错过

     Datawhale干货 

    作者:牧小熊,华中农业大学,Datawhale原创作者

    订单数据作为电商数据分析中的基础分析项目,本项目就京东的订单数据进行分析。通过数据分析和可视化深挖数据产生的原因,掌握基础的数据分析能力。

    1.关于本项目

    1.1数据来源

    本次数据来源于京东2020年5月25日 大家电-冰箱的订单数据 按照10%的随机抽样后进行数据脱敏最后得到的订单数据,共有订单数据大约70K,数据来源于公开网络数据。

    公众号(Datawhale)后台回复“202013”获取打包的项目源码和数据

    1.2数据所包含信息

    订单中的属性将其分成了3类,分别是用户属性、订单属性以及商品属性

    2.数据预处理

    本项目使用python对数据进行处理 使用plotly进行数据可视化

    import pandas as pd
    import numpy as np
    import plotly_express as px
    import plotly.offline as of
    import plotly as py
    import plotly.graph_objs as go
    

    读取提供的数据

    df=pd.read_csv('data.csv',sep='\t', encoding="utf-8", dtype=str)
    

    查看数据的缺失值

    df.isnull().sum().sort_values(ascending=False)
    

    user_site_city_id 38190
    user_site_province_id 38033
    check_account_tm 23271

    通过观察发现,这3个数据有部分缺失值,其中user_site_city_id 用户所在城市编号,user_site_province_id 用户所在省份的编号,check_account_tm支付时间

    这部分数据的缺失是因为用户填写个人资料时跳过的部分,当然这不影响我们整个数据的分析

    我们首先是将数据的类型进行转换 同时处理缺失值和异常值

    • 值得注意的是,通过观察我们发现冰箱最低的价格是288元,但是数据中发现了很多低于288元的订单数据,我们认为这部分数据不能真实代表冰箱实际的订单数据,可能出现了补差价或者补运费的情况,因此这样的数据我们都过滤掉。

    • 因为订单的编号具有唯一性,因此对于订单编号的重复数据,我们认为出现了重复订单

    • 对于缺失的省份值和缺失的数据,我们将空白地方进行填充

    • 通过观察,我们发现数据的列有重复,对于删除重复的列,这里提供一个比较有意思的做法,将数据反转后,删除重复的行再反转回来。

    • 实际支付的价格=商品数量*优惠后的单价

    #删除优惠前价格小于288元的
    df = df[df['before_prefr_unit_price' ]>= 288]
    #订单编号具有唯一性,因此需要删除重复的数据
    df.drop_duplicates(subset=['sale_ord_id'],keep='first',inplace=True)
    #填充城市和省份的缺失数据
    df.user_site_city_id=df.user_site_city_id.fillna(-1)
    df.user_site_province_id =df.user_site_province_id.fillna(-1)
    #删除重复的列check_account_tm 转置列 删除 再转置
    df=df.T.drop_duplicates().T
    #实际支付的价格=商品数量*优惠后单价
    df['total_actual_pay'] = df['sale_qtty'] * df['after_prefr_unit_price']
    

    到这里我们就完成了数据的预处理部分

    3.订单分析

    3.1订单取消比例分析

    通过数据观察,有的订单出现了取消,因此我们通过饼图查看取消和未取消的比例

    order_cancel = df[df.cancel_flag==1]['sale_ord_id'].count()
    order_success=df[df.cancel_flag==0]['sale_ord_id'].count()
    labels = ['取消','未取消']
    values = [order_cancel, order_success]
    trace = [go.Pie(labels=labels, values=values)]
    layout = go.Layout(
        title = dict(text='订单比例图',x=0.5)
    )
    fig = go.Figure(data = trace, layout = layout)
    fig
    

    通过饼状图我们看到,大约有28.9%的订单取消了,取消的比例可能是地址填写错了、没有领到优惠劵等情况,使取消支付的比例占有一部分的比例

    3.2订单支付比例分析

    通过观察数据我们发现了用户有提交了订单,但是没有支付的情况

    #找到所有的有效订单
    df2 = df[(df['sale_ord_valid_flag'] == 1)&(df['cancel_flag'] == 0)&('before_prefr_unit_price' != 0)]
    order_payed = df2['sale_ord_id'][df2['user_actual_pay_amount'] != 0].count()
    order_unpay = df2['sale_ord_id'][df2['user_actual_pay_amount'] == 0].count()
    labels = ['支付','未支付']
    values = [order_payed, order_unpay]
    trace = [go.Pie(labels=labels, values=values)]
    layout = go.Layout(
        title = dict(text='支付比例图',x=0.5)
    )
    fig = go.Figure(data = trace, layout = layout)
    fig
    

    通过饼状图我们可以看到,大约有15%的用户取消了支付,取消支付的比例小于取消订单的比例,因此对于有订单信息的用户但是未支付的,有比较强的购买目的,可能是由于优惠劵或者价格等因素使其取消支付,因此针对这部分用户可能是价格比较敏感的用户,我们可以推送京东优惠卡。

    3.3订单价格分布

    price_series = df2['after_prefr_unit_price']
    price_series_num = price_series.count()
    hist, bin_edges = np.histogram(price_series, bins=80)
    hist_sum = np.cumsum(hist)
    hist_per = hist_sum / price_series_num
    bin_edges_plot = np.delete(bin_edges, 0)
    trace = go.Scatter(
        x = bin_edges_plot,
        y = hist_per*100,
        mode = 'lines', # 折线图
        line = dict(
            width = 2
        ) )
    layout = go.Layout(
        title = dict(text='订单的价格分布',x=0.5),
        xaxis=dict(title='订单价格'),
        yaxis=dict(title='百分比(%)',ticksuffix='%')
        
    )
    fig = go.Figure(data=trace,layout=layout)
    fig
    

    通过分布图可以看到,超过80%冰箱的价格是低于4K的,查过70%的冰箱价格是低于2K的,因此冰箱用户主力消费价格在2K以下,因此在进行冰箱广告推广时,可以优先考虑价格低于2K的冰箱,这类冰箱具有较大的市场。

    同时通过观察,冰箱价格在4K以内分布较为均匀,超过4K以后,冰箱累计上升区间缓慢,因此我们可以大致认为,当冰箱的价格超过4K,这部分冰箱价格我们可以认为是偏豪华型的冰箱,具有单个冰箱利润高,但是销售市场占比少。

    3.4有效订单与时间的关系

    df3 = df2.copy()
    df3['order_time_hms'] = df3['sale_ord_tm'].apply(lambda x: x.strftime('%H'))
    pay_time_df = df3.groupby('order_time_hms')['sale_ord_id'].count()
    x = pay_time_df.index
    y = pay_time_df.values
    trace = go.Bar(
        x = x,
        y = y,
        text=y,
        textposition='outside') 
    layout = go.Layout(
        title = dict(text='不同时间段有效订单分布',x=0.5),
        xaxis=dict(title='时间',tickmode='linear'),
        yaxis=dict(title='有效订单数')
        
    )
    fig = go.Figure(data=trace,layout=layout)
    fig
    

    通过观察,0点有效订单数出现了激增的情况,这一部分是出现了异常订单还是说过了0点以后通过抢购物券使这一部分订单增加?

    同时,除了0点外,10、20点有效订单数具有一个较高的值,说明用户比较偏向于早上10点和晚上20点付款。早上10点付款推测原因可能是刚到公司,先逛一下京东摸摸鱼,晚上20点推测原因是晚饭后,这个时间距离睡觉还比较早,用户刷手机的频率增加,因此增加有效订单数。

    针对0点有效订单数偏高的问题,我们进行进一的分析人均有效订单的情况。

    3.5人均有效订单与时间的关系

    order_time_df=df3.groupby('order_time_hms')['sale_ord_id'].agg({('order_num','count')}).reset_index()
    user_time_df = df3.groupby('order_time_hms')['user_log_acct'].agg({('user_num','nunique')}).reset_index()
    order_num_per_user = order_time_df['order_num'] / user_time_df['user_num']
    trace = go.Scatter(
        x = order_num_per_user.index,
        y = order_num_per_user.values,
        mode = 'lines', # 折线图
        line = dict(
            width = 2
        ) )
    layout = go.Layout(
        title = dict(text='不同时间段人均订单量的分布',x=0.5),
        xaxis=dict(title='时间',tickmode='linear'),
        yaxis=dict(title='人均有效订单量')
        
    )
    fig = go.Figure(data=trace,layout=layout)
    fig
    

    通过观察发现,0点时候的人均有效订单率处于较为正常的值,甚至比1点的有效订单率低,因此有效订单的激增,我们认为很大概率是通过抢优惠劵增加而不是出现了恶意刷单。

    同时我们看到20点的人均有效订单率也是处于较为正常的值

    3.6人均客单价和平均价在不同时间段的分布

    客单价=销售额/顾客数

    平均订单价=销售额/订单数

    0时客单价和平均订单价在全天有个较高的值,会不会是小部分用户的极端购物行为产生这样的数据呢?

    因此我们看一下0时和20时价格订单的分布图

    3.7 0时和20时订单价格分布

    通过看0时和20时不同时间段订单累计分布图我们可以看到

    大约20%的0时用户的订单在2K以下,20时用户在2K以下的订单占比为75%

    这说明0时的用户并补只有一小部分的订单价格很高,而是0时的用户普遍的购物具有较高的客单价。

    因此我们推测,0时用户是否具有一定的冲动购物的情况,而20时购物的用户相对理智一些

    也可能时用户为了使用优惠劵使高额的订单大多集中在0时

    3.8订单与地区的关系

    对于冰箱市场而言,哪些省份是冰箱的头部市场呢?

    通过查看不同省份有效订单分布图我们可以看到,订单的市场大多集中在一线城市或者经济较为发达的省份,这部分城市经济发达,对于年轻人有较强大的吸引力,因此购置冰箱的订单数较高。

    那么这些不同省份客单价是否会不同?

    其中上海客单价最高,广东的订单数量最多,因为广州在外贸上具有较大的优势,因此有具有较大的实体工厂,能吸纳较多的低端人才,因此出现订单数量多而客单价不高的情况。

    与之相反的是上海作为国家的金融中心,汇聚了较多的金融方向的从业者,因此在消费品质上有一个较大的提升。

    最后我们来看看不同品牌的客单价

    3.9不同品牌客单价

    通过图中我们可以看到,卡萨帝稳居客单价排行第一的品牌,妥妥的豪华冰箱品牌

    价格的第一梯队品牌有 博世、西门子、松下、三星 平均价格在4K以上

    价格的第二梯队品牌有 海尔、小米、伊莱克斯、格兰仕、美的 平均价格在2K以上 其中有不少国产品牌的身影

    剩下的品牌价格都在2K以下,这部分市场消费需求大,因此各大品牌在这一区间段价格竞争比较激烈。

    4.小结

    本项目针对京东的冰箱订单数据进行了分析,在分析过程中没用使用复杂的模型以及炫酷的图表,而是通过普通的数据展示一步步深挖数据产生的原因,并提出了一部分产生数据的原因。因此在数据分析中,往往数据指标的建立对于数据的深挖具有较大的意义,同时针对异常数据提出一定的推测和假设,通过有效的数据分析进行小心求证。

    5.项目源码和数据

    数据采用utf-8编码,直接打开可能会出现乱码的情况,因此在读取数据时需要指定字符编码集

    公众号(Datawhale)后台回复“202013”获取打包的项目源码和数据

    “整理不易,三连

    展开全文
  • Python数据分析--numpy总结

    千次阅读 2021-03-05 19:43:34
    Python数据分析–numpy总结 NumPy常用方法总结 文章目录Python数据分析--numpy总结生成ndarray的几种方式从已有数据中创建利用random模块生成ndarray创建特定形状的多维数组利用arange函数存取元素矩阵操作数据...

    Python数据分析–numpy总结

    NumPy常用方法总结
    在这里插入图片描述

    生成ndarray的几种方式

    从已有数据中创建

    import numpy as np
    list1 = [3.14,2.17,0,1,2]
    nd1 = np.array(list1)
    print(nd1)
    print(type(nd1))
    
    [3.14 2.17 0.   1.   2.  ]
    <class 'numpy.ndarray'>
    
    list2 = [[3.14,2.17,0,1,2],[1,2,3,4,5]]
    nd2 = np.array(list2)
    print(nd2)
    print(type(nd2))
    
    
    [[3.14 2.17 0.   1.   2.  ]
     [1.   2.   3.   4.   5.  ]]
    <class 'numpy.ndarray'>
    

    利用random模块生成ndarray

    import numpy as np
    
    nd5 = np.random.random([3,3])
    print(nd5)
    print(type(nd5))
    
    
    [[0.31192569 0.3022696  0.48253531]
     [0.38008201 0.59103878 0.98225759]
     [0.54242215 0.14208123 0.59577163]]
    <class 'numpy.ndarray'>
    
    import numpy as np
    
    np.random.seed(123)
    nd5_1 = np.random.randn(2,3)
    print(nd5_1)
    np.random.shuffle(nd5_1)
    print("随机打乱后数据")
    print(nd5_1)
    print(type(nd5_1))
    
    
    [[-1.0856306   0.99734545  0.2829785 ]
     [-1.50629471 -0.57860025  1.65143654]]
    随机打乱后数据
    [[-1.50629471 -0.57860025  1.65143654]
     [-1.0856306   0.99734545  0.2829785 ]]
    <class 'numpy.ndarray'>
    

    创建特定形状的多维数组

    import numpy as np
    
    #生成全是0的3x3矩阵
    nd6 = np.zeros([3,3])
    #生成全是1的3x3矩阵
    nd7 = np.ones([3,3])
    #生成3阶的单位矩阵
    nd8= np.eye(3)
    #生成3阶对角矩阵
    print (np.diag([1, 2, 3]))
    
    
    [[1 0 0]
     [0 2 0]
     [0 0 3]]
    
    import numpy as np
    nd9 = np.random.random([5,5])
    np.savetxt(X=nd9,fname='./test2.txt')
    nd10 = np.loadtxt('./test2.txt')
    
    

    利用arange函数

    import numpy as np
    
    print(np.arange(10))
    print(np.arange(0,10))
    print(np.arange(1, 4,0.5))
    print(np.arange(9, -1, -1))
    
    
    [0 1 2 3 4 5 6 7 8 9]
    [0 1 2 3 4 5 6 7 8 9]
    [1.  1.5 2.  2.5 3.  3.5]
    [9 8 7 6 5 4 3 2 1 0]
    

    存取元素

    import numpy as np
    np.random.seed(2018)
    nd11 = np.random.random([10])
    #获取指定位置的数据,获取第4个元素
    nd11[3]
    #截取一段数据
    nd11[3:6]
    #截取固定间隔数据
    nd11[1:6:2]
    #倒序取数
    nd11[::-2]
    #截取一个多维数组的一个区域内数据
    nd12=np.arange(25).reshape([5,5])
    nd12[1:3,1:3]
    #截取一个多维数组中,数值在一个值域之内的数据
    nd12[(nd12>3)&(nd12<10)]
    #截取多维数组中,指定的行,如读取第2,3行
    nd12[[1,2]]  #或nd12[1:3,:]
    ##截取多维数组中,指定的列,如读取第2,3列
    nd12[:,1:3]
    
    
    array([[ 1,  2],
           [ 6,  7],
           [11, 12],
           [16, 17],
           [21, 22]])
    

    获取数组中的部分元素除通过指定索引标签外,还可以使用一些函数来实现,如通过random.choice函数可以从指定的样本中进行随机抽取数据。

    import numpy as np
    from numpy import random as nr
    
    a=np.arange(1,25,dtype=float)
    c1=nr.choice(a,size=(3,4))  #size指定输出数组形状
    c2=nr.choice(a,size=(3,4),replace=False)  #replace缺省为True,即可重复抽取。
    #下式中参数p指定每个元素对应的抽取概率,缺省为每个元素被抽取的概率相同。
    c3=nr.choice(a,size=(3,4),p=a / np.sum(a))
    print("随机可重复抽取")
    print(c1)
    print("随机但不重复抽取")
    print(c2)
    print("随机但按制度概率抽取")
    print(c3)
    
    
    随机可重复抽取
    [[18.  1.  7. 14.]
     [22. 23. 24.  1.]
     [24.  9.  8. 10.]]
    随机但不重复抽取
    [[ 3. 20.  4. 10.]
     [13. 22.  5. 17.]
     [ 8. 15. 24.  2.]]
    随机但按制度概率抽取
    [[20.  5. 12. 18.]
     [18. 15.  7. 14.]
     [23. 21. 24. 18.]]
    

    矩阵操作

    import numpy as np
    
    nd14=np.arange(9).reshape([3,3])
    
    #矩阵转置
    np.transpose(nd14)
    
    #矩阵乘法运算
    a=np.arange(12).reshape([3,4])
    b=np.arange(8).reshape([4,2])
    a.dot(b)
    
    #求矩阵的迹
    a.trace()
    #计算矩阵行列式
    np.linalg.det(nd14)
    
    #计算逆矩阵
    c=np.random.random([3,3])
    np.linalg.solve(c,np.eye(3))
    
    
    array([[ 0.38142768, -5.29433928,  6.34332256],
           [ 1.76114014,  1.09115706, -4.37965093],
           [-0.61650199,  4.92267848, -3.55057072]])
    

    数据合并与展平

    合并一维数组

    import numpy as np
    a=np.array([1,2,3])
    b=np.array([4,5,6])
    c=np.append(a,b)
    print(c)
    #或利用concatenate
    d=np.concatenate([a,b])
    print(d)
    
    
    [1 2 3 4 5 6]
    [1 2 3 4 5 6]
    

    多维数组的合并

    import numpy as np
    a=np.arange(4).reshape(2,2)
    b=np.arange(4).reshape(2,2)
    #按行合并
    c=np.append(a,b,axis=0)
    print(c)
    print("合并后数据维度",c.shape)
    #按列合并
    d=np.append(a,b,axis=1)
    print("按列合并结果:")
    print(d)
    print("合并后数据维度",d.shape)
    
    
    [[0 1]
     [2 3]
     [0 1]
     [2 3]]
    合并后数据维度 (4, 2)
    按列合并结果:
    [[0 1 0 1]
     [2 3 2 3]]
    合并后数据维度 (2, 4)
    

    矩阵展平

    import numpy as np
    nd15=np.arange(6).reshape(2,-1)
    print(nd15)
    #按照列优先,展平。
    print("按列优先,展平")
    print(nd15.ravel('F'))
    #按照行优先,展平。
    print("按行优先,展平")
    print(nd15.ravel())
    
    
    [[0 1 2]
     [3 4 5]]
    按列优先,展平
    [0 3 1 4 2 5]
    按行优先,展平
    [0 1 2 3 4 5]
    

    通用函数

    使用math与numpy函数性能比较:

    import time
    import math
    import numpy as np
    
    x = [i * 0.001 for i in np.arange(1000000)]
    start = time.clock()
    for i, t in enumerate(x):
        x[i] = math.sin(t)
    print ("math.sin:", time.clock() - start )
    
    x = [i * 0.001 for i in np.arange(1000000)]
    x = np.array(x)
    start = time.clock()
    np.sin(x)
    print ("numpy.sin:", time.clock() - start )
    

    使用循环与向量运算比较:

    import time
    import numpy as np
    
    x1 = np.random.rand(1000000)
    x2 = np.random.rand(1000000)
    ##使用循环计算向量点积
    tic = time.process_time()
    dot = 0
    for i in range(len(x1)):
        dot+= x1[i]*x2[i]
    toc = time.process_time()
    print ("dot = " + str(dot) + "\n for loop----- Computation time = " + str(1000*(toc - tic)) + "ms")
    ##使用numpy函数求点积
    tic = time.process_time()
    dot = 0
    dot = np.dot(x1,x2)
    toc = time.process_time()
    print ("dot = " + str(dot) + "\n verctor version---- Computation time = " + str(1000*(toc - tic)) + "ms")
    
    

    广播机制

    import numpy as np
    a=np.arange(10)
    b=np.arange(10)
    #两个shape相同的数组相加
    print(a+b)
    #一个数组与标量相加
    print(a+3)
    #两个向量相乘
    print(a*b)
    
    #多维数组之间的运算
    c=np.arange(10).reshape([5,2])
    d=np.arange(2).reshape([1,2])
    #首先将d数组进行复制扩充为[5,2],如何复制请参考图1-2,然后相加。
    print(c+d)
    
    
    [ 0  2  4  6  8 10 12 14 16 18]
    [ 3  4  5  6  7  8  9 10 11 12]
    [ 0  1  4  9 16 25 36 49 64 81]
    [[ 0  2]
     [ 2  4]
     [ 4  6]
     [ 6  8]
     [ 8 10]]
    

    到这里就结束了,如果对你有帮助,欢迎点赞关注,你的点赞对我很重要

    展开全文
  • 数据分析案例:超市数据分析

    千次阅读 2021-04-12 19:58:05
    数据分析案例:超市数据管理驾舱 所需内容: 1、pandas数据清洗 2、pyecharts绘图工具 3、绘制可视化大屏 1.获取数据 代码如下实例: # 读取数据 data = pd.read_excel('../data/超市数据.xlsx') pandas 是基于...

    数据分析案例:超市数据管理驾舱

    所需内容:

    1、pandas数据清洗
    2、pyecharts绘图工具
    3、绘制可视化大屏

    1.获取数据

    代码如下实例:

    # 读取数据
    data = pd.read_excel('../data/超市数据.xlsx')
    

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

    2. 数据分析检查数据

    data.info()
    

    因为数据是比较完整的所以不需要进行数据清洗,就可以直接进行数据操作分析.

    3.各地区销售汇总,并绘成柱状图

    dq_hz = data.groupby(by='地区')['销售额'].sum()
    # 将series转成datafrom
    dq_hz = dq_hz.reset_index()
    
    # 获取地区信息
    X_data = dq_hz['地区']
    X_data = X_data.values.tolist()
    # 获取销售额
    y_data = (dq_hz['销售额']/10000).map(lambda x:("%.2f")%x)
    y_data = y_data.values.tolist()
    # 实例化,增加x轴和y轴的数据
    bar = Bar(init_opts=opts.InitOpts(chart_id='1', bg_color='#00589F'))
    bar.add_xaxis(X_data)
    bar.add_yaxis(series_name='',
                  y_axis=y_data, color='#5D9BCF')
    
    # 控制柱头数字的显示位置
    bar.set_series_opts(label_opts=opts.LabelOpts(position='top'))  # 表头数据显示在右侧
    
    # 增加标题 ---->  全局配置项
    bar.set_global_opts(title_opts=opts.TitleOpts(title="各地区销售额汇总",
                                                  pos_left='center', pos_top='10',
                                                  title_textstyle_opts=opts.TextStyleOpts(color="#FFFFFF", font_size=16)),
                        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(color='#999999'),
                                                 axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
                                                 axisline_opts=opts.AxisLineOpts(
                                                     linestyle_opts=opts.LineStyleOpts(color='#999999')),
                                                 ),
                        yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(color='#999999'),
                                                 axisline_opts=opts.AxisLineOpts(
                                                     linestyle_opts=opts.LineStyleOpts(color='#999999')),
                                                 ),
    
                        toolbox_opts=opts.ToolboxOpts(),  # 工具箱
                        # 图例
                        legend_opts=opts.LegendOpts(pos_top='10px'),
                        # 提示框
                        tooltip_opts=opts.TooltipOpts(axis_pointer_type='cross')
                        )
    bar.render('柱状图.html')
    

    在这里插入图片描述

    4.分类产品每天销售额变化趋势

    # 分类产品每天销售额变化趋势
    # 获取指定时间
    open_day = '2019-11-27'
    close_day = '2019-12-30'
    con1 = data['订单日期'] >= open_day
    con2 = data['订单日期'] < close_day
    data1 = data[con1 & con2]
    #绘制折线图
    line = Line(init_opts=opts.InitOpts(chart_id='2', bg_color='#00589F'))
    #具体绘图略
    
    # 获取指定数据
    out = pd.pivot_table(
        data=data1,  # 进行透视的数据
        index='订单日期',  # 行分组键---分组聚合by参数
        columns='类别',
        values='销售额',  # 针对哪些列进行计算
        aggfunc=np.sum,  # 进行什么计算,比如 求和、求均值
    )
    out.replace(np.nan, 0, inplace=True)
    
    # 取时间做横坐标
    X_data1 = out.index.astype(str).tolist()
    # 取办公用品
    y_data1 = (out['办公用品']/1000).map(lambda x:("%.2f")%x).tolist()
    y_data2 = (out['家具']/1000).map(lambda x:("%.2f")%x).tolist()
    y_data3 = (out['技术']/1000).map(lambda x:("%.2f")%x).tolist()
    

    在这里插入图片描述

    5 . 不同邮寄方式的销售额

    yj_xse = data.groupby(by='邮寄方式')['销售额'].sum()
    
    yj_xse = yj_xse.reset_index()
    schema = yj_xse['邮寄方式'].tolist()
    sj = yj_xse['销售额']
    #绘制极地图
    polar = Polar(init_opts=opts.InitOpts(chart_id='3', bg_color="#00589F"))
    #具体绘图略
    
    

    在这里插入图片描述

    6.细分产品分类分布

    fl = data.groupby(by='子类别')['数量'].sum().sort_values()
    fl = fl.reset_index()
    fl = fl.values.tolist()
    # 绘制饼图
    pie = Pie(init_opts=opts.InitOpts(chart_id='4', bg_color="#00589F", theme=ThemeType.MACARONS))
    #具体绘图略
    

    在这里插入图片描述

    7.2016-2019总销售额

    zonge = data.groupby(by='省/自治区')['销售额'].sum()
    zonge = (zonge/10000).map(lambda x:("%.2f")%x)
    zongem = zonge.max()
    zonghe = data['销售额'].sum()
    zonge = zonge.reset_index()
    zonge = zonge.values.tolist()
    # 绘制中国地图
    map = Map(init_opts=opts.InitOpts(chart_id='5',bg_color='#00589F'))
    #具体绘图略
    

    在这里插入图片描述

    8. 将绘制的图整理成一个文件

    # 顺序组合图
    page = Page(layout=Page.DraggablePageLayout)  # 拖拉式
    # 一次增加多个图
    page.add(bar, pie, map, line, polar,pie1)
    page.render("所有图组合图.html")
    

    在这里插入图片描述

    通过拖拉式将json文件导出,绘成大图

    [ 
      {"cid": "1", "width": "584px", "height": "425px", "top": "0px", "left": "0px"}, 
      {"cid": "4", "width": "584px", "height": "425px", "top": "425px", "left": "0px"},
      {"cid": "5", "width": "584px", "height": "700px", "top": "150px", "left": "584px"},
      {"cid": "2", "width": "584px", "height": "425px", "top": "0px", "left": "1110px"},
      {"cid": "3", "width": "584px", "height": "425px", "top": "425px", "left": "1110px"},
      {"cid": "6", "width": "526px", "height": "150px", "top": "0px", "left": "584px"}
    ]
    
    from pyecharts.charts import Page
    page = Page()
    page.save_resize_html(source='所有图组合图.html',
                          cfg_file='chart_config.json',
                          dest='大屏图.html')
    

    在这里插入图片描述

    展开全文
  • 毕竟比起传统的EXCEL报表和文字报告,具有交互式体验的可视化数据分析大屏显然更有说服力,也能更快的帮助团队发现问题。 在这样的场景中,我们应该如何使用Tempo BI进行数据故事的搭建呢?今天小T就以电商运营中...

    今年的双11和往年相比似乎有一点冷清,各大电商平台在数据披露上都低调了起来。在这样的氛围下,各位电商运营更要自己“支楞起来”,用心做好自家活动的复盘总结。
    这个时候数据分析的技能就要派上用场了。毕竟比起传统的EXCEL报表和文字报告,具有交互式体验的可视化数据分析大屏显然更有说服力,也能更快的帮助团队发现问题。
    电商数据分析

    在这样的场景中,我们应该如何使用Tempo BI进行数据故事的搭建呢?今天小T就以电商运营中一些常见的数据分析需求为例,讲讲怎样不写代码不做UI设计,也能快速做出清晰直观又富有创意的可视化数据大屏!

    三个模块讲好双11数据故事

    就和写剧本一样,在构思数据故事之前,我们需要先明确整个故事的框架。
    因为我们复盘促销活动数据的根本目的,还是为了提取经验,为下一次活动打好基础,所以这里小T推荐大家可以用筹备下一次促销活动的思路,以业务场景为起始思考点,以业务决策为终点,去组织数据分析的维度,这样一来,整个数据故事就可以大致分为这3个部分:
    1、展示业务数据,明确完成情况
    2、发现异常数据,寻找隐藏问题
    3、对比过往数据,探究研究策略
    这就涉及了好几种不同的数据可视化分析需求,比如说针对于清晰展示关键业务数据的需求,我们可能就要做一个醒目的实时数据展示列表或者是仪表盘;而对于寻找问题的数据分析需求,则需要我们制作各种对比图表展现数据的各种变化趋势。
    别担心,这些需求,在Tempo BI中,都可以通过简单的步骤轻松实现。
    关键KPI展示不清晰?
    请使用这些组件!

    在Tempo BI中,我们可以使用KPI水球图和仪表盘组件展示目前的重点业务指标和实时完成情况,让业务人员能够一秒GET到自己的任务进度。
    双十一销售数据分析

    在大目标之下,我们还可以继续分拆小目标。这时我们就可以使用Tempo BI中的列表组件,制作一个可以滚动的业绩播报板展示各个地区的实时销售情况。
    双十一销售数据分析

    双十一销售业绩播报

    庞杂分散的销售数据经过更加贴近业务逻辑的可视化处理之后,可以让团队一线的销售和客服人员也能快速掌握理解目前的整体工作进度,这样在下一次订立目标KPI时,大家也可以制定出更加符合实际的计划。
    异常数据怎么找?
    动态图表来帮忙!

    在日常的电商运营工作中,常常需要将商品的销售额、销售量、库存量等数据进行交叉比对分析,来判断网店商品的正常运营水平。
    这个时候我们就可以将数据直接导入Tempo BI中制作一个堆叠图表,用可视化的方法来直观对比查看活动期间数据和平日数据的变化趋势,从而发现问题。
    电商数据分析

    除了商品流转情况,对于网店运营来说,推广情况也是一个需要关注的重点。为了判断相关促销节点和流量的走向是否吻合,很多运营人员都会制作网店销售额的变动趋势图表,但双11大促持续1个多月,四五十天的数据放置在一张图表中,无论怎么调整数据单位,看上去都怪怪的。

    而在Tempo BI中,针对这种X轴日期数据特别多的图表,就可以使用修饰模块中的缩放功能,让数据图表可以直接随着日期变化自由拖拽显示。别说放一个月的数据,就算是要展示一整年的波动数据,一样也可以让画面运行清爽流畅。
    在这里插入图片描述

    将数据具象化
    市场客户情况一目了然

    通过电商渠道,可以帮助品牌将销售的触角轻松延展到全国各地。当然,对于店铺的运营者来说,需要面对的市场经营环境和客户群体也会更加复杂。
    为了让商品在全国范围内的销售情况更加一目了然,我们可以将相关的销售数据和真实的地理地图对应起来,制作成热力图,更加直观的判断自己的商品在那些地区最受欢迎。
    数据可视化分析

    了解顾客的主要访问来源,并通过实时数据回溯顾客在整个双11期间消费行为的变化,也可以帮助我们更好的完善未来的经营策略。将相关的跟踪数据导入到Tempo BI中,就可以生成直观的扇形图和折线图。顾客是通过哪些渠道了解并选购商品的,又会在哪些时间节点开始集中浏览商品信息,进行加购、收藏、购买等行为数据,都可以清晰的展示出来。
    电商数据分析

    讲了这么多,是不是让你对Tempo BI轻松易用的可视化数据分析功能有了更直观的认识,想要立刻把这些漂亮又直观的可视化数据分析图表用在自己的数据复盘报告中了呢?
    拯救打工人的【双11电商数据大屏模板】这不就来了!点此链接就可以直接免费领取电商场景精美数据大屏模板一份,直接替换数据就能用!
    在这里插入图片描述

    其实小T在这里也只是抛砖引玉,其实不只是电商场景,如今各行各业都在积极推进数字化转型,数据分析已经逐渐成为所有职场人士都需要掌握的关键技能。Tempo BI简单易用轻代码的操作特性,就很适合业务人员快速上手可视化数据分析技能,轻松探索数据之美。
    目前Tempo平台提供免费在线试用,感兴趣的朋友点此申请试用,Tempo BI的更多功能等您发现!

    展开全文
  • 岗位数据分析 分析背景 这是一个用数据说话的时代,也是一个依靠数据竞争的时代,日前生活各处都离不开数据随之数据信息日益增长,需要从数据中搜集、整理、分析,并依据数据做出行业研究、评估和预测为公司提升业绩...
  • 《I2S传输PCM音频数据分析总结》主要是介绍PCM音频数据是如何通过I2S进行传输的,主要是分成2个部分: PCM音频数据介绍 - 《【Audio】I2S传输PCM音频数据分析总结(一)》 I2S协议介绍 本篇文章主要是以I2S协议来...
  • 《呆瓜半小时入门python数据分析》课程述如何用D-tale库测试时间序列time series可视化 《呆瓜半小时入门python数据分析》述如何用autoviz库的一行代码实现所有新冠病毒数据可视化,大大节省自己写代码可视化时间。...
  • Python数据分析可视化--Titanic

    千次阅读 2021-01-16 16:55:49
    Python数据分析可视化–Titanic 这篇文章主要介绍泰坦尼克幸存者问题的数据处理以及可视乎部分,关于机器学习部分: 机器学习2:KNN决策树探究泰坦尼克号幸存者问题 文章目录Python数据分析可视化--Titanic导入数据...
  • 数据分析及工具应用总结

    千次阅读 2021-11-28 09:23:16
    数据分析即从数据、信息到知识的过程,数据分析需要数学理论、行业经验以及计算机工具三者结合 数据分析工具 :各种厂商开发了数据分析的工具、模块,将分析模型封装,使不了解技术的人也能够快捷的实现数学建模,...
  • Python数据分析与挖掘实战总结

    千次阅读 2021-02-04 22:55:42
    《Python数据分析与挖掘实战》笔记,包含每章节总结及对应代码,可供python数据分析与数据挖掘资料使用,另外包括数据挖掘比赛笔记总结
  • 今天我继续给大家带来适合人力岗位的年终总结模板,应用的软件是Yonghong Desktop制作,有需要的朋友下载之后需要结合软件套用自己公司的数据。 本报告包含:员工管理分部、部门考勤情况、入离职员工情况、和员工...
  • 股票数据分析

    千次阅读 2021-11-02 14:59:32
    股票数据分析 前面我们介绍了Spark 和 Spark SQL,今天我们就使用 Spark SQL来分析一下我们的数据,今天我们主要分析一下股票数据 数据准备 交易数据 我们拿到了最近几年的交易数据 下面是具体的数据格式,csv 文件...
  • 初次数据分析--我的心得体会

    千次阅读 2021-01-14 13:39:57
    现在十分流行做个斜杠青年,也就是跨界,但是这一课,猴子老师首先提醒我们,跨界...数据分析常用模块有三个:numpy:矩阵计算等数学计算,pandas:基于numpy的数据分析工具,使用数据框对表结构的数据进行分析,mat...
  • 大家好,继上一篇跟大家聊的《我为什么选择了数据分析》,其实我们所说的“数据分析”可以说是有关“数据”类岗位的总称。即通过分析“数据”发现业务问题,洞察商业机会点,为运营活动、业务增长及企...
  • 数据分析)网课评论分析

    万次阅读 多人点赞 2020-12-27 15:15:31
    本文通过爬取的数据,对中国大学MOOC(icourse)、慕课网(imooc)、腾讯课堂(keqq)、网易云课堂(study163)四个网课平台的课程信息及评论进行...同时,对数据分析的整体流程做一个总结。内容如有纰漏,敬请指出。
  • 数据分析实战-信用卡欺诈检测(一) 大数据分析实战-信用卡欺诈检测(二)-下采样方案和交叉验证 大数据分析实战-信用卡欺诈检测(三)- 模型评估 大数据分析实战-信用卡欺诈检测(四)-正则化惩罚 大数据分析实战...
  • (2)大数据技术综述总结

    千次阅读 2021-08-19 02:14:34
    其中,GFS(Google File System)提供了相对于传统存储方案,更加高效、海量的一种数据存储方案分布式文件系统。MapReduce是对于海量数据的高效的分布式计算框架。 大数据落地标志:之后Doug Cutting基于这这两篇...
  • 数据安全简单分析总结

    千次阅读 2021-11-19 17:29:06
    数据安全是一个重要的模块,我们从三个层面入手:操作系统、应用系统、数据库、比较常用的是应用系统和数据库层面的安全保障措施, 在操作系统层面通过防火墙的设置,如设置端口成8080只有自己的电脑能访问,应用层...
  • 【学习笔记】商业数据分析

    千次阅读 2021-11-19 19:51:13
    商业数据分析 商业数据分析是指以数据和商业理论为基础,通过寻找数据规律,结合业务背景,依靠统计软件和可视化工具,以优化企业经营决策为目的,洞察经营数据背后的规律等,从而为企业提供生产力和业务效益,...
  • 从开发视角看数据分析

    千次阅读 2021-02-01 16:20:00
    导读:数据分析就是要从杂乱无章的数据中将某个或者某些核心指标做提炼、归纳、总结,找到某个规律,但往往得到的结论不足以支撑下一步的动作,劳心劳力最后无果,又要再继续深挖。本文并不是一篇专业...
  • 《Python数据分析与挖掘实战》​ 在当今大数据驱动的时代,要想从事机器学习、人工智能、数据挖掘等前沿技术,离不开数据跟踪与分析,通过NumPy、Pandas等进行数据科学计算,通过Seaborn、Matplotlib等进行数据可视...
  • 疫情数据分析与可视化

    千次阅读 多人点赞 2021-01-07 14:24:56
    疫情数据分析与可视化python实现数据分析与可视化前言一、什么是Python爬虫?二、Python爬虫相关知识1.相关书籍资料推荐(建议谷歌打开)2.数据获取3.知识点三、数据分析与可视化1.安装2.CSV表格操作3.可视化总结 ...
  • 读入数据总结 前言 如何使用 Power BI 来分析工业数据?我们公司主要是采集各类生产现场设备的数据,比如西门子、三菱、欧姆龙等各类PLC,西门子、FANUC、三菱、兄弟、广数等数控和各类仪器仪表。具体可以参看我们...
  • 数据分析的绩效应该这样来考核

    千次阅读 2021-01-07 17:30:21
    数据分析专家 职业生涯遍历咨询公司、国企、互联网大厂、中小型创业团队 致力于数据应用和数据文化建设 导读:通常,数据分析师的自我认知是业务的数据量化者、增长的数据挖掘人,我们习惯于用指标去量化业务的绩效...
  • Boss直聘招聘数据分析-202104月版

    千次阅读 2021-04-10 07:41:00
    西安boss直聘4月招聘信息分析 关于boss直聘数据采集可查看另一篇文章《Boss直...本次分析主要采集了:“Python”、“JAVA”、“数据分析”、“大数据”、“ETL”,后面也会从这5大招聘岗位、整体招聘情况6个部分展开分析
  • 基于R语言的数据分析报告

    千次阅读 多人点赞 2021-01-29 20:11:41
    基于R语言的数据分析报告 学号:20215102 姓名:蔡倓 一、数据说明 本文进行数据分析所使用的数据是共享单车运营数据,记录了共享单车租赁的时间、地点、环境(包括季节,温度,湿度)等数据。该数据集来自 kaggle ...
  • 数据分析好学吗?很好学!然而很多同学学着学着就钻进误区,结果空耗力气不说,还不解决问题。今天陈老师就来盘点下,常见的八大误区。同学们有则改之,无则加勉哦。01目标不明,贪大求多学数据分析到...
  • 最近也快到年底了,老李就整理了15种常用/常见的数据分析方法和模型,并将其分为两大类,方便大家理解记忆,话不多话,直接开盘! 对外部用户分析模型 1、RFM分析 以往文章:数据分析初学者必备!10分钟搭建RFM客户...
  • 1、大数据分析框架结构 2、数据、信息与数据分析 数据:是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。 ...
  • 数据分析就是运用恰当的分析方法,分析所收集的海量资料,并运用高效的分析工具将之归类、归纳,从中提炼出最有价值的资料,总结形成有效结论,挖掘数据最大价值的过程。 二、数据分析的基本步骤 数据分析的基本...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 951,513
精华内容 380,605
关键字:

数据分析总结