diff options
author | Jarrod Millman <jarrod.millman@gmail.com> | 2017-07-27 13:58:16 -0700 |
---|---|---|
committer | Jarrod Millman <jarrod.millman@gmail.com> | 2017-08-12 22:47:57 -0700 |
commit | e9d8c6b9d64d4b6bbab6b77a7ac285be07146930 (patch) | |
tree | 2d666dad6adb82740408e92461e7f2a91d75da5b /networkx/convert.py | |
parent | fbbfe49a5906ce9ecce4f0d002fc58e89769fd7a (diff) | |
download | networkx-e9d8c6b9d64d4b6bbab6b77a7ac285be07146930.tar.gz |
Create separate functions for df as edge-lists and adjacency matrices
Fixes #2464.
Some related commits:
52eb3d3: from_pandas_dataframe and to_pandas_dataframe were added to work with adjacency matrix.
f0c22dd: from_pandas_dataframe was changed to work with edge-lists, but to_pandas_dataframe was not changed.
Diffstat (limited to 'networkx/convert.py')
-rw-r--r-- | networkx/convert.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/networkx/convert.py b/networkx/convert.py index e3a0b502..da639886 100644 --- a/networkx/convert.py +++ b/networkx/convert.py @@ -134,11 +134,18 @@ def to_networkx_graph(data, create_using=None, multigraph_input=False): try: import pandas as pd if isinstance(data, pd.DataFrame): - try: - return nx.from_pandas_dataframe(data, edge_attr=True, create_using=create_using) - except: - msg = "Input is not a correct Pandas DataFrame." - raise nx.NetworkXError(msg) + if data.shape[0] == data.shape[1]: + try: + return nx.from_pandas_adjacency(data, create_using=create_using) + except: + msg = "Input is not a correct Pandas DataFrame adjacency matrix." + raise nx.NetworkXError(msg) + else: + try: + return nx.from_pandas_edgelist(data, edge_attr=True, create_using=create_using) + except: + msg = "Input is not a correct Pandas DataFrame edge-list." + raise nx.NetworkXError(msg) except ImportError: msg = 'pandas not found, skipping conversion test.' warnings.warn(msg, ImportWarning) |