Well, then define it — first_graph should simply be the graph you loaded from the first CSV file as usual.
-- T. On Monday, 18 November 2013 at 06:06, Ahmed Abdeen Hamed wrote: > I am sorry but it seems we haven't defined the the first_graph variable. > > Traceback (most recent call last): > File "file-reader.py", line 12, in <module> > for name in first_graph.vs["name"]: > NameError: name 'first_graph' is not defined > > > Sorry, I am really embarrassed asking many questions :( > > -Ahmed > > > > > > > On Sun, Nov 17, 2013 at 4:52 AM, Tamás Nepusz <[email protected] > (mailto:[email protected])> wrote: > > One of your CSV files does not have a “source” header for sure. > > > > -- > > T. > > > > > > On Sunday, 17 November 2013 at 01:28, Ahmed Abdeen Hamed wrote: > > > > > Thank you! > > > > > > It is not liking the headers of the csv files: > > > > > > > > > Ahmeds-MacBook-Pro:python-projects ahamedCOM$ python file-reader.py > > > Traceback (most recent call last): > > > File "file-reader.py", line 8, in <module> > > > g = Graph.DictList(vertices=None, edges=chain(reader1, reader2)) > > > File "/Library/Python/2.7/site-packages/igraph/__init__.py", line 2246, > > > in DictList > > > v1 = vertex_name_map[edge_data[efk_src]] > > > KeyError: 'source' > > > > > > > > > -Ahmed > > > > > > > > > > > > > > > > > > > > > On Sat, Nov 16, 2013 at 11:32 AM, Tamás Nepusz <[email protected] > > > (mailto:[email protected])> wrote: > > > > Hi, > > > > > > > > > How do you append to a graph from a file? > > > > > > > > > > Here is a scenario of what I am trying to do I have two different csv > > > > > files: > > > > 1. How about concatenating the two files first and then loading the > > > > combined file? > > > > > > > > 2. If you don’t want to concatenate the physical files, you can still > > > > concatenate the CSV reader objects that you use to read them: > > > > > > > > from itertools import chain > > > > > > > > reader1 = csv.DictReader(open(“file1.csv”)) > > > > reader2 = csv.DictReader(open(“file2.csv”)) > > > > > > > > g = Graph.DictList(vertices=None, edges=chain(reader1, reader2)) > > > > > > > > 3. If you already have a graph and you want to add edges from another > > > > file to it, you will need a lookup table that 1) maps vertex names from > > > > the first graph to the corresponding vertex IDs, 2) is able to create > > > > new IDs for vertex names from the second that it hasn’t seen yet. > > > > igraph’s UniqueIdGenerator object can help you with that: > > > > > > > > # Create the UniqueIdGenerator and pre-load it with the names from the > > > > first graph > > > > id_gen = UniqueIdGenerator() > > > > for name in first_graph.vs[“name”]: > > > > id_gen.add(name) > > > > > > > > # Read the second graph > > > > reader = csv.DictReader(open(“file2.csv”)) > > > > new_edges = [] > > > > for row in reader: > > > > new_edges.append(id_gen[row[“source”]], id_gen[row[“target”]]) > > > > > > > > # Add the new vertices and edges to the graph > > > > n = g.vcount() > > > > if n < len(id_gen): > > > > g.add_vertices(len(id_gen) - n) > > > > g.vs[“name”] = id_gen.values() > > > > g.add_edges(new_edges) > > > > > > > > I know that it’s a bit cumbersome; the Python interface desperately > > > > needs a Graph.union_by_name() function but I haven’t had time to add it > > > > yet. > > > > > > > > — > > > > T. > > > > > > > > > > > > _______________________________________________ > > > > igraph-help mailing list > > > > [email protected] (mailto:[email protected]) > > > > https://lists.nongnu.org/mailman/listinfo/igraph-help > > > > > > > > > > _______________________________________________ > > > igraph-help mailing list > > > [email protected] (mailto:[email protected]) > > > https://lists.nongnu.org/mailman/listinfo/igraph-help > > > > > > > > > > > > > > > > > _______________________________________________ > > igraph-help mailing list > > [email protected] (mailto:[email protected]) > > https://lists.nongnu.org/mailman/listinfo/igraph-help > > > > _______________________________________________ > igraph-help mailing list > [email protected] (mailto:[email protected]) > https://lists.nongnu.org/mailman/listinfo/igraph-help > >
_______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
