我需要将网络每个节点的社区输出到.txt文件中。 我正在使用NetworkX版本。 2.1和Pandas版本。 0.23.4:
import networkx as nx
import pandas as pd
from networkx.algorithms import community
G = nx.barbell_graph(5, 1)
communities_generator = community.girvan_newman(G)
top_level_communities = next(communities_generator)
next_level_communities = next(communities_generator)
sorted(map(sorted, next_level_communities))
#>>> sorted(map(sorted, next_level_communities))
[[0, 1, 2, 3, 4], [5], [6, 7, 8, 9, 10]]
#in this case, 3 different communities (groups) were identified
我需要一个类似于以下内容的.txt表:
NODE COMMUNITY
0 GROUP 1
1 GROUP 1
2 GROUP 1
3 GROUP 1
4 GROUP 1
5 GROUP 2
6 GROUP 3
7 GROUP 3
8 GROUP 3
9 GROUP 3
10 GROUP 3
答案 0 :(得分:0)
您可以这样做:
import networkx as nx
import pandas as pd
from networkx.algorithms import community
G = nx.barbell_graph(5, 1)
communities_generator = community.girvan_newman(G)
top_level_communities = next(communities_generator)
next_level_communities = next(communities_generator)
data = [[element, "GROUP-{}".format(ii + 1)] for ii, st in enumerate(next_level_communities) for element in sorted(st)]
print(data)
frame = pd.DataFrame(data=data, columns=['node', 'community'])
frame.to_csv("communities.csv", sep=" ", index=False)
文件“ communities.csv”具有以下格式:
node community
0 GROUP-1
1 GROUP-1
2 GROUP-1
3 GROUP-1
4 GROUP-1
5 GROUP-2
6 GROUP-3
7 GROUP-3
8 GROUP-3
9 GROUP-3
10 GROUP-3