数据格式
set(df["字段类别"])
"""
{'业务-交易信息-交易通用信息-交易基本信息',
'业务-交易信息-交易通用信息-交易对手信息',
'业务-交易信息-交易通用信息-交易清结算信息',
'业务-交易信息-交易通用信息-交易记账信息',
'业务-交易信息-交易通用信息-交易金额信息',
'业务-交易信息-保险收付费信息-保险收费信息',
'业务-合约协议-中间业务信息-交易类中间业务信息',
'业务-合约协议-中间业务信息-代理类中间业务信息',
'业务-合约协议-中间业务信息-基本信息',
'业务-合约协议-中间业务信息-基金托管类中间业务信息',
...
"""
转化成树结构
datalist = list(set(df['字段类别'].astype(str)))
datatree = []
def append(tree, nodestr):
if nodestr == '':
return
path = nodestr.split('-')
head, tails = path[0], '-'.join(path[1:])
if head == 'nan':
return
for i in tree:
if i['name'] == head:
append(i['children'], tails)
return
tree.append({'name': head, 'children':[]})
append(tree[-1]['children'], tails)
for i in datalist:
append(datatree, i)
pyechart 绘图
from pyecharts.charts import Tree
from pyecharts import options as opts
N_class = len(set(df["字段类别"]))
tree = Tree(
init_opts=opts.InitOpts(
width='1200px',
height=f'{N_class*20}px',
)
)
(
tree.add(
'',
[{'name':'金融','children':datatree}],
initial_tree_depth = 4,
is_roam = True,
layout='orthogonal',
symbol = "emptyCircle",
orient="LR"
)
.set_global_opts(title_opts=opts.TitleOpts(title="金融数据分类模板"))
)
tree.render_notebook()
