python - 为 Networkx 中的连接组件列表分配编号
问题描述
我使用networkx创建了一个图表:
G = nx.Graph()
G.add_edges_from(edges)
list(nx.connected_components(G))
输出如下所示:
{'John Doe' , 'James Doe'},
{'Jack Fisher', 'Adam Scott', 'Jane Matters'}
我想以数字方式将所有连接的组件组合在一起。所以 John Doe 和 James Doe 属于第 1 组,然后下一个列表属于第 2 组。
我不知道该怎么做。
解决方案
您可以很容易地构建一个字典,用 枚举连接的组件集,并从元组enumerate
构建一个:dict
s = {'John Doe' , 'James Doe'}, {'Jack Fisher', 'Adam Scott', 'Jane Matters'}
dict(enumerate(s))
# {0: {'James Doe', 'John Doe'},
# 1: {'Adam Scott', 'Jack Fisher', 'Jane Matters'}}
对于 a pd.DataFrame
,您可以使用字典理解,如下所示:
d = {name:k for k,comp in enumerate(s) for name in comp}
(pd.DataFrame.from_dict(d, orient='index', columns=['component'])
.rename_axis('name')
.reset_index())
name component
0 James Doe 0
1 John Doe 0
2 Jane Matters 1
3 Adam Scott 1
4 Jack Fisher 1
推荐阅读
- uitableview - 如果滚动到底部太快,JavaFX TableView 会崩溃,自定义单元格也会变得不合逻辑
- python - 元组数组中最大元素的索引
- php - Ajax 发布请求后不显示结果
- swagger - OAS3 指定的服务版本控制
- python - 获取具有特定依赖项的 conda 包的版本
- url-parameters - Apostrophecms : 如何通过斜杠在 url 中添加 url 参数
- java - 线程“主”java.lang.NoClassDefFoundError 中的异常:org/springframework/context/support/ClassPathXmlApplicationContext
- python - PCA vs TSNE vs MDS(审查集群)
- c# - C# 字符串对转换为元组列表
- vim - 当 Sublime Text3 与 vintageouse 一起使用时,如何在进入命令模式时将光标设置为下划线?