from_pandas_edgelist#

from_pandas_edgelist(df, source='source', target='target', edge_attr=None, create_using=None, edge_key=None)[源代码]#

从包含边缘列表的熊猫数据帧返回一个图表。

PADAS数据帧应至少包含两列节点名称和零列或更多列边缘属性。每一行将作为一个边缘实例进行处理。

注意:此函数迭代dataframe.values,但不保证在行中的列之间保留数据类型。这只是一个问题,如果您的行是完全数字的,并且混合了int和float。在这种情况下,所有值都将作为浮点返回。有关示例,请参见dataframe.iterrow文档。

参数
df熊猫数据框

图的边列表表示法

source字符串或整型

源节点的有效列名(字符串或整数)(用于定向情况)。

target字符串或整型

目标节点的有效列名(字符串或整数)(用于定向情况)。

edge_attr字符串或整型、可迭代、True或无

用于检索项目并将其作为边属性添加到图中的有效列名(字符串或整型)或可迭代的列名。如果 True ,则将添加所有剩余的列。如果 None ,则不会将边属性添加到图形中。

create_usingNetworkX图形构造函数,可选(默认=nx.Graph)

要创建的图表类型。如果是图表实例,则在填充之前清除。

edge_key字符串或无,可选(默认值=无)

边关键帧的有效列名(对于多重图)。如果CREATE_USING为多重图,则在添加边时,此列中的值用于边关键点。

实例

边缘上的简单整数权重:

>>> import pandas as pd
>>> pd.options.display.max_columns = 20
>>> import numpy as np
>>> rng = np.random.RandomState(seed=5)
>>> ints = rng.randint(1, 11, size=(3, 2))
>>> a = ["A", "B", "C"]
>>> b = ["D", "A", "E"]
>>> df = pd.DataFrame(ints, columns=["weight", "cost"])
>>> df[0] = a
>>> df["b"] = b
>>> df[["weight", "cost", 0, "b"]]
   weight  cost  0  b
0       4     7  A  D
1       7     1  B  A
2      10     9  C  E
>>> G = nx.from_pandas_edgelist(df, 0, "b", ["weight", "cost"])
>>> G["E"]["C"]["weight"]
10
>>> G["E"]["C"]["cost"]
9
>>> edges = pd.DataFrame(
...     {
...         "source": [0, 1, 2],
...         "target": [2, 2, 3],
...         "weight": [3, 4, 5],
...         "color": ["red", "blue", "blue"],
...     }
... )
>>> G = nx.from_pandas_edgelist(edges, edge_attr=True)
>>> G[0][2]["color"]
'red'

使用自定义键构建多重图:

>>> edges = pd.DataFrame(
...     {
...         "source": [0, 1, 2, 0],
...         "target": [2, 2, 3, 2],
...         "my_edge_key": ["A", "B", "C", "D"],
...         "weight": [3, 4, 5, 6],
...         "color": ["red", "blue", "blue", "blue"],
...     }
... )
>>> G = nx.from_pandas_edgelist(
...     edges,
...     edge_key="my_edge_key",
...     edge_attr=["weight", "color"],
...     create_using=nx.MultiGraph(),
... )
>>> G[0][2]
AtlasView({'A': {'weight': 3, 'color': 'red'}, 'D': {'weight': 6, 'color': 'blue'}})