尝试将CSV数据转换为文献计量学图表(Gephi)的sourcetarget格式

2024-09-30 16:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到一个csv,它由描述在特定出版物中工作过的研究小组(从1组到n组)的行组成,并将每两个小组的合作组合成一个csv

我的csv是这样的:(每一行对应一个特定的出版物)

group1;group2;group3
group1;group8
group8;group2;group1

我需要将其转换为Gephi Edge格式,它使用csv源目标格式:

group1;group2
group1;group3
group2;group3
group1;group8
group8;group2
group8;group1
group2;group1   

(不需要所有排列,只需要组合,因为它是一个无向图)

我首先只做了一行,并大致了解了如何做:

b = "group1;group2;group3"

b_split = b.split(";")

print list(combinations(b_split,2))

结果:[('group1','group2'),('group1','group3'),('group2','group3')]

但是,当我试图打开整个csv时,似乎分割功能不起作用

with open('grups.csv','rb') as origin_file:
    reader = csv.reader(origin_file, delimiter=";")
    a = list(reader)

for row in a:
    c = list(combinations(row,2))

with open('output.csv','wb') as result_file:
    for each in c:
        wr = csv.writer(result_file)
        wr.writerow(each)

但我在文件中得到的结果只是最后一行

谢谢你的帮助


Tags: csv格式with小组open出版物listreader
1条回答
网友
1楼 · 发布于 2024-09-30 16:34:15

让它通过以下方式工作:

with open('grups.csv','rb') as origin_file:
    reader = csv.reader(origin_file, delimiter=";")
    a = list(reader)

with open('output_grups.csv','wb') as result_file:
    for row in a:
        c = list(combinations(row,2))
        for each in c:
            wr = csv.writer(result_file,delimiter=';',dialect='excel')
            wr.writerow(each)

相关问题 更多 >