code: def from_perseus(network_table, networks):
      
      graphs = []
      for guid, graph_attr in zip(network_table['GUID'], network_table.values):
          network = networks[guid]
          edge_table = network['edge_table']
          if edge_table[['Source', 'Target']].duplicated().any():
              warnings.warn('Duplicate edges were found and ignored in network {}'.format(network['name']))
          G = nx.from_pandas_edgelist(edge_table, 'Source', 'Target', True, create_using=nx.DiGraph())
          for attr, value in zip(network_table.columns, graph_attr):
              G.graph[attr] = value
          node_table = network['node_table']
          if node_table['Node'].duplicated().any():
              warnings.warn('Duplicate nodes were found and ignored in network {}'.format(network['name']))
          node_column = node_table['Node']
          for name, attributes in zip(node_column, node_table.values):
              if name not in G:
                  G.add_node(name)
              for attr, value in zip(node_table.columns, attributes):
                  G.node[name][attr] = value
          graphs.append(G)
      return graphs
docs: Create networkx graph from network tables
      
      >>> from perseuspy import read_networks, nx
      >>> network_table, networks = read_networks(folder)
      >>> graphs = nx.from_perseus(network_table, networks)