예제 #1
0
def zhuanhua(df):
    #计算各环节订单数
    dict_convs=dict()
    key="总订单数"
    dict_convs[key]=len(df['订单编号'])

    key='付款订单数'
    dict_convs[key]=df['订单付款时间'].notnull().sum()

    key='到款订单数'
    #总金额减去退款金额不为0,则认为到款了,即买家实际支付金额不为0即可
    sum_daokuan=(df['买家实际支付金额'] !=0).sum()
    dict_convs[key]=sum_daokuan

    key='未退款订单数'
    #即付款了且未退款
    dict_convs[key]=len(df[(df['买家实际支付金额'] != 0) & (df['退款金额'] == 0)])
    print(dict_convs)
    #计算总体转化率
    df_convs=pd.Series(dict_convs,name='订单数').to_frame()
    print(df_convs)
    cvr_total = df_convs['订单数']/df_convs.loc['总订单数','订单数']
    df_convs['总转化率'] = cvr_total
    df_convs[['总转化率']] = df_convs[['总转化率']].applymap(lambda x :'%.2f%%'  %  (x*100))
    print(df_convs)
    funnel = Funnel().add('总转化率',
                          [list(z) for z in zip(df_convs.index, cvr_total)],
                          label_opts=opts.LabelOpts(position='inside'))
    funnel.render_notebook()
    #计算单一环节转化率
    cvr_single = df_convs['订单数'].shift()                               # 将数据向下移一位,第一行变成NAN
    cvr_single = cvr_single.fillna(df_convs.loc['总订单数','订单数'])             # 将第一行的NAN填上订单总数的数据,用于计算
    cvr_single = df_convs['订单数']/cvr_single
    df_convs['单一环节转化率'] = cvr_single
    df_convs[['单一环节转化率']] = df_convs[['单一环节转化率']].applymap(lambda x :'%.2f%%'  %  (x*100))
    print(df_convs)
    funnel = Funnel().add('单一环节转化率',
                          [list(z) for z in zip(df_convs.index, cvr_single)],
                          label_opts=opts.LabelOpts(position='inside'))
    funnel.render_notebook()
예제 #2
0
dt_hong = [[str(begin + datetime.timedelta(days=d)),
            random.randint(10, 2500)] for d in range((end - begin).days + 1)]
calendar = Calendar()
calendar.add("小明", dt_ming)
calendar.add("小红", dt_hong, calendar_opts=opts.CalendarOpts(range_=2020))
# 设置热度图颜色区间
calendar.set_global_opts(
    visualmap_opts=opts.VisualMapOpts(min_=10, max_=2500, pos_top="center"))
calendar.render_notebook()

# %% [markdown]
# ### Funnel -- 漏斗图

funnel = Funnel()
funnel.add("", list(zip(*[Faker.choose(), Faker.values()])))
funnel.render_notebook()

# %% [markdown]
# ### Gauge -- 仪表盘图

gauge = Gauge()
gauge.add("", [["OK", 75]])
gauge.render_notebook()

# %% [markdown]
# ### Liquid -- 水球图

# Liquid().add("", [0.6, 0.66]).render_notebook()
liquid_1 = Liquid().add("", [0.6, 0.65], center=["20%", "50%"])
liquid_2 = Liquid().add("", [0.3, 0.4], shape="rect", center=["80%", "50%"])
grid = Grid()