我有一些与出版物ID相关的作者数据。以下脚本使用这些共同发布来基于共同作者创建边缘列表:
import networkx as nx
import itertools
D = nx.Graph()
D.add_nodes_from(author_affiliations_dataframe['auid'].values)
for i, group in author_affiliations_dataframe.groupby(['pmid'])['auid']:
# generate all combinations without replacement
# from the group of similar column pairs
for u, v in itertools.combinations(group, 2):
D.add_edge(u, v)
但是,由于我对这些网络随着时间的发展感兴趣,所以我现在想将出版年份添加到各个方面。出版年份链接到出版物ID,也可以在author_affiliations_dataframe中找到。
答案 0 :(得分:0)
我找到了部分解决方案:
for i, group in author_pmids.groupby(['pmid'])['auid']:
# generate all combinations without replacement
# from the group of similar column pairs
for u, v in itertools.combinations(group, 2):
edges.append(pd.DataFrame({'pmid': [i], 'left': [u],'right':[v]}))
edges = pd.concat(edges)
边缘数据框随后可用于在图形对象中创建边缘。
唯一的问题是上面的代码效率低下,因此提出了更快的解决方案的进一步答案是值得的。