Вероятно, проще всего использовать pandas, чтобы прочитать ваш файл .csv в формате df, а затем выполнить понимание списка, чтобы извлечь каждую строку в формат, читаемый библиотекой networkx.
Следующий код частично адаптировано из: Рисование сети с узлами и ребрами в Python3
... с изменениями для ориентированного графа в круговой схеме с узлами, ребрами и весами столбцы вашего df
import pandas as pd
import matplotlib.pyplot as plt
import networkx as nx
df = pd.DataFrame({'nodes': [1,2,4,5], 'edges': [2,3,5,6], 'weights': [45,24,98,12]})
# each edge is a tuple of the form (node, edge/node, {'weight': weight})
edges = [(x, y, {'weight': z}) for x, y, z in zip(df['nodes'], df['edges'], df['weights'])]
# a directed graph has arrows pointing to edges
G = nx.DiGraph()
G.add_edges_from(edges)
# create a circular layout
pos = nx.circular_layout(G)
# draw the nodes
nx.draw_networkx_nodes(G,pos, node_size=300)
# draw the labels
nx.draw_networkx_labels(G,pos, font_size=15,font_family='sans-serif')
# draw the edges
nx.draw_networkx_edges(G,pos, edgelist=edges, arrowstyle = '-|>', width=1)
# add weights
labels = nx.get_edge_attributes(G,'weight')
nx.draw_networkx_edge_labels(G,pos, edge_labels=labels)
plt.show()