我正在尝试创建一种社交网络分析的图,但我不能使用Networkx库(它用于学术项目(。我有一个csv文件,数据如下:
Column1, Column2
1563,133
171316,2
1563,924
我创建了一种方法来读取csv文件的内容并创建图形的Vertex对象:
def github_csv():
data = []
with open('Github1.csv', mode='r') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
follower = Vertex(row["follower"])
followed = Vertex(row["followed"])
data.append(Vertex(follower))
data.append(Vertex(followed))
return data
然后,我试着在图上插入一个顶点:
def build_graph():
graph_vertex = github_csv()
graph = Graph(True)
for vertex in graph_vertex:
print(vertex)
graph.insert_vertex(vertex)
print(graph.vertex_count())
return graph
我的类Graph和insert_vertex方法是:
class Graph:
def __init__(self, directed=False):
self._directed = directed
self._number = 0
self._vertices = {}
def insert_vertex(self, x):
v = Vertex(x)
self._vertices[v] = {}
return v
def vertex_count(self):
return self._number
但是,当我调用build_graph()
时,顶点计数等于零。我在这里做错了什么?输出类似于:
36872
8135
5823
272950
797296
0
<__main__.Graph object at 0x00000234DD044F70>
您需要更新_number
的值,可能在insert_vertex
中为:
def insert_vertex(self, x):
v = Vertex(x)
self._vertices[v] = {}
self._number = len(self._vertices)
return v