2016-07-19 18 views
2

I df habenGraph mit graphviz

id, url, search_term 
1, vkontakte.ru, vk 
1, apple.com, iphone купить 
1, asos.com, купить одежду asos 
2, facebook.com, facebook 
2, twitter.com, twitter 
2, stackoverflow.com, how to explore decision tree python 

Und ich versuche Ketten mit Pfeilen zu bauen Ich versuche

for i, (id, domain, search_term) in enumerate(zip(df['ID'], df['domain'], df['search_term'])): 
    f = Digraph('finite_state_machine', filename='fsm.gv', encoding='utf-8') 
    f.body.extend(['rankdir=LR', 'size="5,5"']) 
    f.attr('node', shape='circle') 
    f.edge(url[i], url[i-1], label=search_term[i]) 
    f.view() 

ich Kette hinzufügen möchten alle url und alle search_term, aber mit diesem Code Ich kann nur zwei hinzufügen. Und dieser Code gibt nur das erste Symbol von url und search_term zurück. Wie kann ich diese Ketten machen? Ich möchte this graph

Antwort

0

Sie bekommen sollte außerhalb der Schleife die Erstellung des Graphen und die Aussicht nehmen:

f = Digraph('finite_state_machine', filename='fsm.gv', encoding='utf-8') 
f.body.extend(['rankdir=LR', 'size="5,5"']) 
f.attr('node', shape='circle') 
for i, (id, domain, search_term) in enumerate(zip(df['ID'], df['domain'], df['search_term'])): 
    f.edge(url[i], url[i-1], label=search_term[i]) 
f.view() 

Sie sonst in jeder Iteration

+0

ein neues Diagramm mit einer Kante erstellen Wenn ich müssen die paar Ketten drucken. Ich meine, dass ich 1 Kette auf 1 ID – ldevyataykina

+0

@ldevyataykina drucken möchten, so müssen Sie das Diagramm erstellen und iterate so auf jeder ID seperat –

+0

Ihr Code Rückgabe mich 'KeyError: 0L' – ldevyataykina