Hello Tiago and Tanguy, I'm following your discussion with great interest as I have a similar task. I want to convert a multigraph into a simple graph. This works very nicely with GraphView(u, efilt=label_parallel_edges(u).fa == 0) However, removing the parallel edges this way means that the edge properties of the parallel edges are lost. I have an edge property called "eqntag" which is a string and I want to concatenate all eqntags from the parallel edges into the simple graph. I think this is what Tanguy meant by "edge coalescence". I did not understand how to use condensation_graph() for this purpose, so I've written my own function: def remove_parallel_edges_merge_eqntags(g): # create simple graph g2: g2 = gt.GraphView(g, efilt=gt.label_parallel_edges(g).fa == 0) # loop over the remaining edges in the simple graph: for e in g2.edges(): # create a list with all edges from g that connect the same # vertices as the current edge in g2: edgelist = g.edge(e.source(), e.target(), all_edges=True) # replace eqntag by semicolon-separated merged eqntag: g2.ep.eqntag[e] = ';'.join([g.ep.eqntag[edge] for edge in edgelist]) return g2 Best regards Rolf -- Sent from: http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/