您好,我正在与Networkx合作生成一个网络。
我有两个CSV文件、nodes.csv和edges.csv
对于nodes.csv,列是“名称”和“类型”,因此我有以下内容:
Name, Type
Gemini, System
EDD Case Management App, Module对于edges.csv,列编号是“源”和“目标”,因此我有以下内容:
Source, Target
Gemini, EDD Case Management App我用来加载数据的代码:
with open('nodes.csv', 'r') as nodecsv:
nodereader = csv.reader(nodecsv)
nodes=[n for n in nodereader][1:]
node_names = [n[0] for n in nodes]
with open('edges.csv', 'r') as edgecsv:
edgereader = csv.reader(edgecsv)
edges = [tuple(e) for e in edgereader][1:]
edge_names = [e[0] for e in edges]当我打印node_names和edges时
['Gemini, System', 'EDD Case Management App, Module']
[('Gemini, EDD Case Management App',)]我在edges中得到一个额外的逗号,当我将边数据加载到Networkx Graph中时,该逗号会导致下行错误
---------------------------------------------------------------------------
NetworkXError Traceback (most recent call last)
<ipython-input-19-3dbbe371ce6c> in <module>
1 G.add_nodes_from(node_names)
----> 2 G.add_edges_from(edges)
C:\ProgramData\Anaconda3\lib\site-packages\networkx\classes\graph.py in add_edges_from(self, ebunch_to_add, **attr)
950 else:
951 raise NetworkXError(
--> 952 "Edge tuple %s must be a 2-tuple or 3-tuple." % (e,))
953 if u not in self._node:
954 self._adj[u] = self.adjlist_inner_dict_factory()
NetworkXError: Edge tuple ('Gemini, EDD Case Management App',) must be a 2-tuple or 3-tuple.我刚接触Python和Networkx
如何删除额外的逗号?
发布于 2020-06-10 02:03:36
对于遇到这个问题的其他人。
经过反复试验,通过将源分配给A列,将目标分配给B列,重新构建edges.csv文件解决了错误
https://stackoverflow.com/questions/62263346
复制相似问题