code: def to_networkx(self):
          
          try:
              from networkx import DiGraph, set_node_attributes
          except ImportError:
              raise ImportError('You must have networkx installed to export networkx graphs')
  
          result = DiGraph()
          for row in self._raw_tree:
              result.add_edge(row['parent'], row['child'], weight=row['lambda_val'])
  
          set_node_attributes(result, dict(self._raw_tree[['child', 'child_size']]), 'size')
  
          return result
docs: Return a NetworkX DiGraph object representing the condensed tree.
  
          Edge weights in the graph are the lamba values at which child nodes
          'leave' the parent cluster.
  
          Nodes have a `size` attribute attached giving the number of points
          that are in the cluster (or 1 if it is a singleton point) at the
          point of cluster creation (fewer points may be in the cluster at
          larger lambda values).