本文简要介绍
networkx.convert_matrix.from_pandas_edgelist
的用法。用法:
from_pandas_edgelist(df, source='source', target='target', edge_attr=None, create_using=None, edge_key=None)
从 Pandas DataFrame 返回包含边列表的图。
Pandas DataFrame 应包含至少两列节点名称和零或多列边属性。每一行将作为一个边实例处理。
注意:此函数迭代 DataFrame.values,这不能保证保留行中跨列的数据类型。仅当您的行完全是数字并且是整数和浮点数的混合时,这才是问题。在这种情况下,所有值都将以浮点数形式返回。有关示例,请参阅DataFrame.iterrows 文档。
- df: Pandas DataFrame
图的边列表表示
- source:str 或 int
源节点的有效列名(字符串或整数)(针对有向情况)。
- target:str 或 int
目标节点的有效列名(字符串或整数)(针对有向情况)。
- edge_attr:str 或 int、可迭代、True 或 None
一个有效的列名(str 或 int)或列名的可迭代,用于检索项目并将它们作为边属性添加到图中。如果
True
,将添加所有剩余的列。如果None
,则不向图中添加边属性。- create_using:NetworkX 图形构造函数,可选(默认=nx.Graph)
要创建的图表类型。如果是图形实例,则在填充之前清除。
- edge_key:str 或无,可选(默认=无)
边键的有效列名(对于 MultiGraph)。如果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'}})
相关用法
- Python NetworkX from_pandas_adjacency用法及代码示例
- Python NetworkX from_pydot用法及代码示例
- Python NetworkX from_prufer_sequence用法及代码示例
- Python NetworkX from_dict_of_dicts用法及代码示例
- Python NetworkX from_scipy_sparse_array用法及代码示例
- Python NetworkX from_scipy_sparse_matrix用法及代码示例
- Python NetworkX from_dict_of_lists用法及代码示例
- Python NetworkX from_edgelist用法及代码示例
- Python NetworkX from_nested_tuple用法及代码示例
- Python NetworkX from_graph6_bytes用法及代码示例
- Python NetworkX from_numpy_matrix用法及代码示例
- Python NetworkX from_sparse6_bytes用法及代码示例
- Python NetworkX from_agraph用法及代码示例
- Python NetworkX from_numpy_array用法及代码示例
- Python NetworkX freeze用法及代码示例
- Python NetworkX full_join用法及代码示例
- Python NetworkX find_induced_nodes用法及代码示例
- Python NetworkX floyd_warshall_predecessor_and_distance用法及代码示例
- Python NetworkX find_cycle用法及代码示例
- Python NetworkX find_threshold_graph用法及代码示例
- Python NetworkX negative_edge_cycle用法及代码示例
- Python NetworkX voronoi_cells用法及代码示例
- Python NetworkX numerical_edge_match用法及代码示例
- Python NetworkX inverse_line_graph用法及代码示例
- Python NetworkX LFR_benchmark_graph用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.convert_matrix.from_pandas_edgelist。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。