将Python Pandas Dataframe列转换为节点和边以进行网络分析[已关闭]

wr98u20j  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(121)

22小时前关门了。
Improve this question
我想用Gephi创建一个研究文章作者的网络分析,为此,我需要创建一个txt文档供Gephi导入;所需格式:
第一个月
在这个例子中,杰里米和詹妮弗,缬草和杰里米在网络中相互连接。
我当前的CSV如下所示:

不幸的是,我无法将CSV转换为上面给出的txt格式,它应该如下所示:

因此,如果有三个不同的作者,1需要连接到2,2连接到3,1连接到3。这显然需要扩展到更多的作者。
我希望得到帮助,如何设置算法,以转换我目前的名单,因为我不管理。提前感谢!

uxhixvfz

uxhixvfz1#

可以使用itertools.combinations()按排序顺序选择元组,且元组中没有重复的元素,如下所示:

import csv
import itertools

with open(csv_in_file) as fin, open(csv_out_file, 'w') as fout:
  cr = csv.reader(fin)
  cw = csv.writer(fout)
  for row in cr:
    n_pairs = 0
    for pair in itertools.combinations(row, 2):
        cw.writerow(pair)
        n_pairs += 1
    if n_pairs == 0:
        cw.writerow([])

上面的代码没有行号。如果你愿意,你可以在输出的开头添加一个序数(如果它在输入文件中,你可以删除它)

相关问题