У меня есть датафрейм df с:
Source, Target
aaaa, bbbb
aaaa, cccc
aaaa, dddd
bbbb, cccc
cccc, dddd
и т. Д.
Файл "total_edges.csv" (71kb): https://uni -duisburg-essen. sciebo.de/s/WLDD4ytkjekVcIL
Я получаю объект графа и, согласно трекеру проблем github (https://github.com/igraph/python-igraph/issues/253) узлы / ребра триады, но это не удается:
import pandas as pd
import igraph as ig
df_edges = pd.read_csv("total_edges.csv")
g = ig.Graph.TupleList(df_edges.itertuples(index=False), directed=True)
tc = g.triad_census()
ffl = ig.Graph.Formula("A --> B --> C, A --> C")
result = g.get_subisomorphisms_lad(ffl, induced=True)
print(result)
Сообщение об ошибке (виртуальная машина с обновленной версией Pop_OS x64, Python 3.7.5):
Traceback (most recent call last):
File "count_triads.py", line 20, in <module>
ffl = ig.Graph.Formula("A --> B --> C, A --> C")
File "/home/admin/.local/lib/python3.7/site-packages/igraph/formula.py", line 209, in construct_graph_from_formula
for start_names, end_names, arrowheads in generate_edges(part):
File "/home/admin/.local/lib/python3.7/site-packages/igraph/formula.py", line 90, in generate_edges
raise SyntaxError(msg)
SyntaxError: invalid token found in edge specification: A --> B --> C
Как пометить все узлы в этом графе значением триады (A, B, C, None)для типа триады 030T, чтобы я мог по-разному фильтровать / строить триады и не триады?