Как мне воспроизвести результаты из webgraphviz с python graphviz, используя 2 колонки pandas dataframe

У меня есть два столбца данных pandas с идентификаторами родительского и дочернего процессов, который выглядит следующим образом:

    ChildID ParentID
0   460     580
1   580     716
2   460     724
3   716     840
4   716     812
5   724     884
6   716     800
7   1424    2028
8   2280    2368
9   2368    2480
10  2948    2916
11  3312    3896
12  3312    3468
13  3312    3996
16  4       460
17  460     480
18  3244    4168
19  1324    4796
20  5888    5048
21  2504    4424
22  1324    7584
23  2040    1400
24  1224    2452
..  ...     ...

Я скачал библиотеку Python Graphviz, но пока я хотел посмотреть, что я могу сделать, я отправился на http://www.webgraphviz.com/ чтобы узнать, что можно сделать. Я использовал тот же набор данных, и он выглядит довольно хорошо.

Я немного искал, но у меня возникли проблемы с поиском хорошего способа воспроизвести это, используя библиотеку python graphviz. Кто-нибудь может указать мне правильное направление, просто используя 2 столбца, возможно, с небольшим примером?

1 ответ

Решение

Вот мое решение:

from graphviz import Graph
g = Graph('processs', filename='process.gv', engin='sfdp')
# run over all the rows and for each row add a new edge to the graph
for index, row in df.iterrows():
    g.edge(str(row['ChildID']), str(row['ParentID']))
g.view()

Если у вас есть некоторые проблемы с запуском graphviz в Windows, вам, вероятно, нужно добавить bin-файлы graphviz в Windows PATH, для этого вы можете использовать:

import os
os.environ["PATH"] += os.pathsep + <path to the bin folder>

Наслаждайтесь!

Другие вопросы по тегам