将 pandas 数据框的每一行可视化为一棵树

Visualize each row of pandas data frame as a tree

我有一个包含 4 列 A、B、C、D 的数据框。我需要将数据框的每一行可视化/打印为 结构。

示例:

df['A'] = 加盟商

df['B'] = 结束

df['C'] = 状态

df['D'] = 注册

然后,我需要将这一行可视化为一棵树,francisee 是 sign off 的父节点,sign off 是 status 的父节点和加盟商的子节点,status 是 registration 的父节点和子节点sign off, registration 是status的子节点。 我怎样才能做到这一点?我试过使用 anytree 库:

from anytree import Node, RenderTree, NodeMixin
import pandas as pd

df = pd.read_csv('file_location')
for i, j, k, l in zip(df['A'], df['B'], df['C'], df['D']):
    mdept = Node(a)
    dept = Node(b, parent = a)
    qtype = Node(c, parent = b)
    sqtype = Node(d, parent = c)

但它显示以下错误:

异常有occured:TreeError

父节点 'franchisee' 不是 'NodeMixin' 类型。

我不知道这个库,所以我不能确保没有更好的方法,但是遍历行和列并使用根节点:

from anytree import Node
root = Node('root')
for _, row in df.iterrows():
    n = Node(row['A'], parent=root)
    for c in ['B', 'C', 'D']:
        n = Node(row[c], parent=n) # n is always the previous node

# export as dot graph
from anytree.exporter import DotExporter
DotExporter(root).to_picture('graph.png')

输出: