У меня есть networkx
график g
, который я создал из кадра данных pandas df
и сохранил.
df
A B
0 359 278
1 576 437
2 329 177
3 329 278
g = pd.from_edgelist(df, 'A', 'B')
Я сохранил его как рассол
nx.write_gpickle(g, 'myGraph.gz')
Я сейчас читаю этот график для другого проекта
g = nx.read_pickle('myGraph.gz')
Теперь у меня есть база данных, содержащая информацию о некоторых узлах в g
.
df1
Node Y
0 359 0
1 576 1
2 329 1
3 278 0
4 100 0
5 437 1
Я хочу использовать информацию df.Y
для выполнения персонализированного PageRank только для общих узлов между df
и g
. После слияния я хотел бы получить что-то вроде следующего.
d = pd.Series(df1['Y'], index=df1.index).to_dict()
ppr = nx.pagerank(g, alpha=0.85, personalization=d)