Я пытаюсь добавить атрибуты в ряд узлов в двудольном графе NetworkX.Один набор узлов - это имена сотрудников;другой набор - названия фильмов.Они выглядят так:
# This is the set of employees
employees = set(['Pablo',
'Lee',
'Georgia',
'Vincent',
'Andy',
'Frida',
'Joan',
'Claude'])
# This is the set of movies
movies = set(['The Shawshank Redemption',
'Forrest Gump',
'The Matrix',
'Anaconda',
'The Social Network',
'The Godfather',
'Monty Python and the Holy Grail',
'Snakes on a Plane',
'Kung Fu Panda',
'The Dark Knight',
'Mean Girls'])
У меня есть данные сети в кадре данных Pandas:
df = df = pd.read_csv('Employee_Movie_Choices.txt', sep='\t')
#Employee Movie
0 Andy Anaconda
1 Andy Mean Girls
2 Andy The Matrix
3 Claude Anaconda
4 Claude Monty Python and the Holy Grail
Из которого я создаю график NetworkX:
B = nx.from_pandas_dataframe(df, '#Employee', 'Movie')
Затем я пытаюсь добавить следующие атрибуты к узлам с помощью следующего цикла:
for e in employees:
nx.set_node_attributes(B, {e: {'type'='employee'}})
for m in movies:
nx.set_node_attributes(B, {m: {'type'='movie'}})
Но получаю следующую ошибку:
TypeError: set_node_attributes() missing 1 required positional argument: 'values'
Я не могу решить эту проблему.Я также попробовал это:
for e in emplyoees:
nx.set_node_attributes(B, name='type', values='employee')
for m in movies:
nx.set_node_attributes(B, name='type', values='movie')
Но каждый цикл for назначает свое значение, то есть «employee» или «movie», каждому узлу.Таким образом, фильмы будут помечены как сотрудники вместе с сотрудниками, а сотрудники будут помечены как фильмы вместе с фильмами.
Любая помощь с этим очень ценится!