如何从 txt 文件中读取节点和边? (或 .edges 和 .nodes 文件) NetworkX

Posted

技术标签:

【中文标题】如何从 txt 文件中读取节点和边? (或 .edges 和 .nodes 文件) NetworkX【英文标题】:How to read nodes and edges from txt files ? (or .edges and .nodes files) NetworkX 【发布时间】:2021-04-24 21:22:15 【问题描述】:

我正在努力制作 NetworkX 图表。我有两个 txt 文件(从 .edges 和 .nodes 文件转换而来),如下所示:


nodes.txt:

id,name,new_id

402449106435352,Josh Marks,386

368969274888,Blue Ribbon Restaurants,473

765596333518863,Pat Neely,1

136870209668885,La Griglia,542

840078802741859,Jose Garces,189

1189829367698904,Zac Kara,454

edges.txt:

0,276

0,58

0,132

0,603

0,398

0,555

1,265

我找不到将这些文件中的边和节点添加到 networkx 图的方法。我要么只添加边,要么只添加节点,我很确定我做错了什么。我是新手,对此知之甚少,因此我很感激我得到的所有帮助。

这是我目前所拥有的。

df_edges = pd.read_csv('food_edges.txt', sep = ',', header = None)
df_nodes = pd.read_csv('food_nodes.txt', sep = ',', header = None, names = ['id', 'name', 'new_id'])

# Try 1:
G = nx.Graph()

G.add_nodes_from(df_nodes)
G.add_edges_from(df_edges)

'''
Error : 
Traceback (most recent call last):
  File "food_net.py", line 22, in <module>
    G.add_edges_from(df_edges)
  File "C:\Python38\lib\site-packages\networkx\classes\graph.py", line 923, in add_edges_from
    ne = len(e)
TypeError: object of type 'int' has no len()
''' 

# Try 2: adding edges , but don't know how to add nodes then
g = nx.read_weighted_edgelist('fb-pages-food/fb-pages-food.edges', delimiter = ',')


【问题讨论】:

能否提供您尝试添加这些的代码? @YevhenKuzmovych 我编辑了帖子并添加了代码 【参考方案1】:

所以我认为 .edges 实际上是我的图表所需的唯一文件,而 .nodes 文件(第二个文件)只是用作“密码本”,所以我可以看到哪些食物是,或者用食物的名称。

【讨论】:

以上是关于如何从 txt 文件中读取节点和边? (或 .edges 和 .nodes 文件) NetworkX的主要内容,如果未能解决你的问题,请参考以下文章

使用 Force Layout 从两个不同的 csv 文件中读取节点和边

如何使用 Graphviz 获取节点和边数

如何从文件中读取数据(GraphX)?

如何从节点模块读取文件?

使用 graphml 和 jung 加载自定义节点和边

Python学习系列二十五数据结构-有向图绘制