从 pandas df 创建 networkx 图,其中列条目作为邻居的元组
Create networkx graph from pandas df with column entries as tuples of neighbours
我有一个 Pandas 数据框,每个条目的第一列都有一个节点的名称,第二列是该节点的邻居的元组。我如何直接从这个数据帧构建一个 networkx 图。
import networkx as nx
import pandas as pd
data = [[1,(2,4)],[2, (1,3)], [3, (1,2,3)], [4, (1)]]
exdf = pd.DataFrame(data, columns = ["A","B"])
G = nx.from_pandas_edgelist(exdf, "A", "B")
最后一行代码构建了一个图形,其中边连接列“A”和“B”的每个条目。但是,如果列条目是节点列表或元组而不是单个节点,这似乎不起作用。有没有简单的解决方法?
您传递给 networkx 的内容还不是边缘列表。您可以 explode 列 B
创建一个:
exdf = exdf.explode('B')
我有一个 Pandas 数据框,每个条目的第一列都有一个节点的名称,第二列是该节点的邻居的元组。我如何直接从这个数据帧构建一个 networkx 图。
import networkx as nx
import pandas as pd
data = [[1,(2,4)],[2, (1,3)], [3, (1,2,3)], [4, (1)]]
exdf = pd.DataFrame(data, columns = ["A","B"])
G = nx.from_pandas_edgelist(exdf, "A", "B")
最后一行代码构建了一个图形,其中边连接列“A”和“B”的每个条目。但是,如果列条目是节点列表或元组而不是单个节点,这似乎不起作用。有没有简单的解决方法?
您传递给 networkx 的内容还不是边缘列表。您可以 explode 列 B
创建一个:
exdf = exdf.explode('B')