I am a complete noobie in Python, and I would like to study a dataset using the networkx package. I do not understand what is wrong here:
I have a csv which looks like this (extract):
['152027', '-6167']
['152027', '-4982']
['152027', '-3810']
['152027', '-2288']
['152027', '-1253']
['152100', '-152100']
['152100', '-86127']
lets call this .csv file nodes
. Numbers heres have no particular meanings. They are just anonymised names: so 152027 is a person that is connected to individual -6167, individual -4982, etc.
I use the following code in 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()
and I get the sad Out[71]: 0
I do not understand what is wrong here.
Could you please help me?
nx.read_edgelist
expects the first variable to be a file handle or filename string, not a csv.reader
object.
Don't use csv
at all; try just
G = nx.read_edgelist('nodes', delimiter=',', nodetype=int, encoding="utf-8")
Edit: if you need to skip a header line, you could do
with open('nodes', 'rb') as inf:
next(inf, '') # skip a line
G = nx.read_edgelist(inf, delimiter=',', nodetype=int, encoding="utf-8")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With