내가 가진 파일로 dataframe 내가 노드와 체인을 생성하고이 파일에 쓸하려고 graphviz를 : 쓰기 결과는
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 новости
. 나는 그것은
을 반환
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()
사용하지만 ID
의 번호와 같은, 파일에 저장합니다. 파일 111, 222, 333
을 가져와야합니다. 시도해보십시오
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))
하지만 제대로 작동하지 않습니다. 그것은 노드가 3 개있는 과 333
체인으로 되돌아 가야하지만, 파일에서는 2 노드가있는 체인이 111
과 333
이됩니다. 이 파일에 111
: 내가 뭘 잘못하고 어떻게 해결할 수 있습니까?
'f.edge : 그런 다음 모든 그룹에 대해 한 번
f = Digraph(...)
및f.render(...)
전화 = group [ 'search_term'] [i + 1])''KeyError : 0L' – ldevyataykina내 실수. 나는 iloc을 생략했다 : group [ 'domain'] [i]'대신'group [ 'domain'] .iloc [i]'를 사용하라. 'iloc'은 위치 (서수) 색인을 사용합니다. 'iloc'이 없으면 인덱싱은 레이블 기반입니다. – unutbu
도움에 감사드립니다! – ldevyataykina