桑基图

import pandas as pd
from pyecharts.charts import Sankey
from pyecharts import options as opts

df = pd.read_excel('D:/Studyfile/test.xlsx')
df.head(10)

nodes = []

for i in range(3):
    values = df.iloc[:,i].unique()
    for value in values:
        dic = {}
        dic['name'] = value
        nodes.append(dic)
nodes

first = df.groupby(['品类','第一次购买'])['人数'].sum().reset_index()
second = df.iloc[:,1:]
first.columns = ['source','target','value']
second.columns = ['source','target','value']
result = pd.concat([first,second])
result.head(10)

linkes = []

for i in result.values:
    dic = {}
    dic['source'] = i[0]
    dic['target'] = i[1]
    dic['value'] = i[2]
    linkes.append(dic)
    
linkes

pic = (
    Sankey()
    .add('',
        nodes,
        linkes,
        linestyle_opt=opts.LineStyleOpts(opacity = 0.7,curve = 0.5,color = 'source'),
        label_opts = opts.LabelOpts(position = 'top'),
        node_gap = 30,
    )
    .set_global_opts(title_opts=opts.TitleOpts(title = '客户购买路径流转图'))
)
pic.render('D:/Studyfile/test2.html')
    

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值