无法在Python中加载networkx中的简单csv

ℕʘʘ*_*ḆḽḘ 5 python csv networkx

我是Python的完整noobie,我想使用networkx包研究数据集.我不明白这里有什么问题:

我有一个看起来像这样的csv(摘录):

['152027', '-6167']
['152027', '-4982']
['152027', '-3810']
['152027', '-2288']
['152027', '-1253']
['152100', '-152100']
['152100', '-86127']
Run Code Online (Sandbox Code Playgroud)

我们可以调用这个.csv文件nodes.数字继承人没有特别的意义.它们只是匿名的名称:所以152027是个人连接到个人-6167,个人-4982等.

我在Python中使用以下代码

import csv
import networkx as nx

file = csv.reader(open('nodes', 'rb'), delimiter=',')

G=nx.read_edgelist(file, delimiter=',',nodetype=float,encoding='utf-8')
G.number_of_nodes()
Run Code Online (Sandbox Code Playgroud)

我很难过,Out[71]: 0 我不明白这里有什么问题.请你帮助我好吗?

Hug*_*ell 12

nx.read_edgelist期望第一个变量是文件句柄或文件名字符串,而不是csv.reader对象.

完全不要使用csv; 试试吧

G = nx.read_edgelist('nodes', delimiter=',', nodetype=int, encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)

编辑:如果你需要跳过标题行,你可以这样做

with open('nodes', 'rb') as inf:
    next(inf, '')   # skip a line
    G = nx.read_edgelist(inf, delimiter=',', nodetype=int, encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)