本文簡要介紹
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。