summaryrefslogtreecommitdiff
path: root/networkx/convert.py
diff options
context:
space:
mode:
authorJarrod Millman <jarrod.millman@gmail.com>2017-07-27 13:58:16 -0700
committerJarrod Millman <jarrod.millman@gmail.com>2017-08-12 22:47:57 -0700
commite9d8c6b9d64d4b6bbab6b77a7ac285be07146930 (patch)
tree2d666dad6adb82740408e92461e7f2a91d75da5b /networkx/convert.py
parentfbbfe49a5906ce9ecce4f0d002fc58e89769fd7a (diff)
downloadnetworkx-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.py17
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)