Как мне воспроизвести результаты из webgraphviz с python graphviz, используя 2 колонки pandas dataframe - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть два столбца данных 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/, чтобы посмотреть, что можно сделать.Я использовал тот же набор данных, и он выглядит довольно хорошо.

ParentChild-WebGraphViz

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

1 Ответ

0 голосов
/ 21 февраля 2019

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

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>

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

...