如何解决如何从生成的列表数据制作熊猫数据框
我有一个共同作者列表:
ten_author_pairs = [('creutzig','gao'),('creutzig','linshaw'),('gao',('jing','zhang'),'liu'),('zhang','xu'),('briant','einav'),('chen','jing')]
从这里我可以生成一个负面示例列表-即使用以下代码未连接的作者对:
#generating negative examples -
from itertools import combinations
elements = list(set([e for l in ten_author_pairs for e in l])) # find all unique elements
complete_list = list(combinations(elements,2)) # generate all possible combinations
#convert to sets to negate the order
set1 = [set(l) for l in ten_author_pairs]
complete_set = [set(l) for l in complete_list]
# find sets in `complete_set` but not in `set1`
ten_unconnnected = [list(l) for l in complete_set if l not in set1]
print(len(ten_author_pairs))
print(len(ten_unconnnected))
接下来,我要实现一个链接预测问题,要为其获取数据帧,如下所示:
author-pair jaccard Resource_Allocation Adamic_Adar Preferential cn_soundarajan_hopcroft within_inter_cluster link
creutzig-linshaw 0.25 0.25 0.25 0.25 0.25 0.25 1
我可以使用networkx文档来计算它们并获得带有分数的列表作为输出,但是我无法将它们作为一个表格汇总在一起,如上所示。
就像正面示例(上面提到的列表)一样,我可以使用以下方法生成数据框:
df = pd.DataFrame(list,columns = ['u1','u2])
,然后使用以下图形制作图形:
G = nx.from_pandas_edgelist(df,u1,u2,create_using = nx.Graph())
在此之后,我可以申请jaccard索引:
nx.jaccard_coefficient(G)
哪个会给我返回带有jaccard得分的节点对列表。
在“否”示例中,“ link”列是使用逻辑生成的-共同作者为1,配对为0。
但是,我需要所有相应的分数作为表格提及。
任何人都可以帮助我如何构造上述数据框。
(提到的分数仅是为了表明我需要的桌子类型)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。