from_pandas_edgelist#
- from_pandas_edgelist(df, source='source', target='target', edge_attr=None, create_using=None, edge_key=None)[source]#
从包含边列表的Pandas DataFrame返回一个图。
Pandas DataFrame应至少包含两列节点名称和零个或多个边属性列。每一行将被处理为一个边实例。
注意:此函数遍历DataFrame.values,这不能保证在行中的列之间保留数据类型。这仅在您的行完全由数字组成且混合了整数和浮点数时才会出现问题。在这种情况下,所有值都将作为浮点数返回。请参阅DataFrame.iterrows文档以获取示例。
- Parameters:
- dfPandas DataFrame
图的边列表表示
- sourcestr 或 int
源节点的有效列名(字符串或整数)(用于有向情况)。
- targetstr 或 int
目标节点的有效列名(字符串或整数)(用于有向情况)。
- edge_attrstr 或 int, 可迭代对象, True 或 None
有效的列名(字符串或整数)或列名的可迭代对象,用于检索项目并将其添加到图中作为边属性。如果为
True
,将添加所有列,除了source
、target
和edge_key
。如果为None
,则不会向图中添加边属性。- create_usingNetworkX图构造函数,可选(默认=nx.Graph)
要创建的图类型。如果是图实例,则在填充前清除。
- edge_keystr 或 None,可选(默认=None)
边键的有效列名(用于多图)。当create_using是多图时,此列中的值用于边键。
- 如果您有存储在单独DataFrame `df_nodes` 中的节点属性,可以使用以下代码将这些属性加载到图 `G` 中:
- ```
- df_nodes = pd.DataFrame({“node_id”: [1, 2, 3], “attribute1”: [“A”, “B”, “C”]})
- G.add_nodes_from((n, dict(d)) for n, d in df_nodes.iterrows())
- ```
See also
Examples
简单的整数边权重:
```python 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’ ```
构建具有自定义键的多图:
```python 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’}}) ```