networkx 2.8.2 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
to_pandas_adjacency(G, nodelist=None, dtype=None, order=None, multigraph_weight=<built-in function sum>, weight='weight', nonedge=0.0)

Notes

For directed graphs, entry i,j corresponds to an edge from i to j.

The DataFrame entries are assigned to the weight edge attribute. When an edge does not have a weight attribute, the value of the entry is set to the number 1. For multiple (parallel) edges, the values of the entries are determined by the 'multigraph_weight' parameter. The default is to sum the weight attributes for each of the parallel edges.

When :None:None:`nodelist` does not contain every node in G, the matrix is built from the subgraph of G that is induced by the nodes in :None:None:`nodelist`.

The convention used for self-loop edges in graphs is to assign the diagonal matrix entry value to the weight attribute of the edge (or the number 1 if the edge has no weight attribute). If the alternate convention of doubling the edge weight is desired the resulting Pandas DataFrame can be modified as follows:

>>> import pandas as pd
>>> pd.options.display.max_columns = 20
>>> import numpy as np
>>> G = nx.Graph([(1, 1)])
>>> df = nx.to_pandas_adjacency(G, dtype=int)
>>> df
   1
1  1
>>> df.values[np.diag_indices_from(df)] *= 2
>>> df
   1
1  2

Parameters

G : graph

The NetworkX graph used to construct the Pandas DataFrame.

nodelist : list, optional

The rows and columns are ordered according to the nodes in :None:None:`nodelist`. If :None:None:`nodelist` is None, then the ordering is produced by G.nodes().

multigraph_weight : {sum, min, max}, optional

An operator that determines how weights in multigraphs are handled. The default is to sum the weights of the multiple edges.

weight : string or None, optional

The edge attribute that holds the numerical value used for the edge weight. If an edge does not have that attribute, then the value 1 is used instead.

nonedge : float, optional

The matrix values corresponding to nonedges are typically set to zero. However, this could be undesirable if there are matrix values corresponding to actual edges that also have the value zero. If so, one might prefer nonedges to have some other value, such as nan.

Returns

df : Pandas DataFrame

Graph adjacency matrix

Returns the graph adjacency matrix as a Pandas DataFrame.

Examples

>>> G = nx.MultiDiGraph()
... G.add_edge(0, 1, weight=2) 0
>>> G.add_edge(1, 0)
0
>>> G.add_edge(2, 2, weight=3)
0
>>> G.add_edge(2, 2)
1
>>> nx.to_pandas_adjacency(G, nodelist=[0, 1, 2], dtype=int)
   0  1  2
0  0  2  0
1  1  0  0
2  0  0  4
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

networkx.convert_matrix.to_pandas_adjacency networkx.convert_matrix.from_pandas_adjacency

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /networkx/convert_matrix.py#51
type: <class 'function'>
Commit: