找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4021|回复: 1

[已回复] 如何将这个csv文件转化为edge list?

1

主题

1

帖子

1

积分

贫民

积分
1
惟叙 发表于 2017-5-13 23:58:43 | 显示全部楼层 |阅读模式
大家好,初次发帖,真心求助。
  1. TimeID,Division
  2. 201603012940006232914,0018
  3. 201603012940015183580,0018
  4. 201603012940015187205,0018
复制代码
类似这样的一个csv文件,一共有两列,TimeID和Division
现在想得到这样的结果:左侧的TimeID相同的两行的Division,就记作一次共同出现,比如
  1. 201603012940000695821,0018
复制代码

  1. 201603012940000695821,0022
复制代码
这两列,左侧都是201603012940000695821,那么就输出一次
  1. 0018,0022
复制代码
这样的结果,我现在希望能得到所有这样的结果,但是现在的进展上有了点麻烦。
  1. import csv
  2. import networkx as nx
  3. g = nx.DiGraph()
  4. data_csv = open('output.csv')
  5. csv_f = csv.reader(data_csv,delimiter=',')
  6. prev_TimeID = -1
  7. prev_Division = -1
  8. for row in csv_f:
  9.     if row[0] == prev_TimeID:
  10.         g.add_edge(prev_Division,row[1])
  11.         prev_TimeID = row[0]
  12.     prev_Division = row[1]
  13. print (g.edges())
复制代码
目前的代码是这样的,然而这样只能统计出相邻的两列中符合条件的项,想麻烦大家帮个忙,如何能够统计出所有的符合条件的项呢?
谢谢大家了!
回复

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2017-5-14 15:11:38 | 显示全部楼层
没用过cvs这个模块,不过判断左侧的值是否出现过,可以用字典的方式进行实现噻,把左侧的值作为key,右侧的值作为value,key对应的多个值用嵌套列表或者元组给组合起来作为value就行了呗
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表