将 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')
输出:
我有一个包含 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')
输出: