【问题标题】:Social graph: Pandas dataframe to Networkx graph社交图:Pandas 数据框到 Networkx 图
【发布时间】:2018-12-15 00:56:58
【问题描述】:

我有一个数据集,其中包含一个用户和他们拥有的每个朋友。格式与下面类似,其中有一个user_id 字段和friend_id 字段,其中包含每个朋友的相应ID。

user_id | friend_id
   A          B
   A          C
   B          A
   B          G

我的目标是得到一个无向图,显示每个用户和他们喜欢的每个朋友之间的边缘。

A - B - G
|
C

我很难找到如何将 pandas 链接到 networkxgraphviz 以及其他扩展从表格数据创建社交图的资源。

【问题讨论】:

  • 为什么需要直接从 pandas 做呢?您可以遍历记录并创建相关的节点和边。
  • 嘘 @black 还没有完成他们的测试。

标签: python pandas networkx graphviz


【解决方案1】:

例如,这里是一种使用networkxpandasmatplotlib 显示无向网络图的方法。

代码:

import matplotlib.pyplot as plt
import networkx as nx

# store pairs to a list of tuples
tuples = [tuple(x) for x in df.values]

# set up a graph and show it
G = nx.DiGraph()
G.add_edges_from(tuples)
nx.draw_networkx(G)
plt.xticks([], [])
plt.yticks([], [])
plt.show()

输出:

【讨论】:

  • 能够为我的用例清理您的答案。不得不多看一下networkX 文档并得到我想要的东西。感谢您帮助我们将入门代码放在一起。
猜你喜欢
  • 2019-04-22
  • 2011-06-20
  • 1970-01-01
  • 2019-04-14
  • 2018-11-25
  • 2020-08-02
  • 2012-04-20
  • 2014-02-08
  • 1970-01-01
相关资源
最近更新 更多