Ich habe DatenrahmenGraphviz: Schreiber
ID domain search_term
111 vk.com вконтакте
111 twitter.com фэйсбук
111 facebook.com твиттер
222 avito.ru купить машину
222 vk.com вконтакте
333 twitter.com твиттер
333 apple.com купить айфон
333 rbk.ru новости
Ich versuche, eine Datei Kette mit Knoten zu erstellen und schreiben Sie es in Datei. Ich benutze
domains = df['domain'].values.tolist()
search_terms = df['search_term'].values.tolist()
ids = df['ID'].values.tolist()
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(ids, domains, search_terms)):
if ids[i] == ids[i - 1]:
f.edge(domains[i - 1], domains[i], label=search_terms[i])
f.view()
Es gibt Aber ich will es zu einer Datei speichern, wie die Anzahl der ID
. Ich brauche Datei 111, 222, 333
. Ich versuche
for i, (id, domain, search_term) in enumerate(zip(ids, domains, search_terms)):
if ids[i] == ids[i - 1]:
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(domains[i - 1], domains[i], label=search_terms[i])
f.render(filename=str(id))
Aber es funktioniert falsch. Es sollte zu 111
und 333
Kette mit 3 Knoten zurückkehren, aber in Datei bekomme ich Ketten mit 2 Knoten zu 111
und 333
. Diese Datei zu 111
: Was mache ich falsch und wie kann ich das beheben?
es gibt Fehler zu dieser Zeichenfolge 'f.edge (Gruppe [ 'domain'] [i], Gruppe [ 'domain'] [i + 1], Etikett = group ['search_term'] [i + 1]) '' KeyError: 0L' – ldevyataykina
Mein Fehler. Ich habe die "ilocs" weggelassen: Benutze 'group ['domain']. Iloc [i]' anstelle von 'group ['domain'] [i]'. 'iloc' verwendet eine Positionsindexierung (ordinal). Ohne das "Iloc" ist die Indizierung labelbasiert. – unutbu
danke für die Hilfe! – ldevyataykina