将NetworkX节点度字典转为DataFrame出现ValueError错误如何处理
报错原因
- 你传入的度字典每个键对应的值是单个数字(节点度),使用
orient='index'参数调用from_dict时,每个键会被作为行索引,对应的值作为单行的所有数据,所以每行只有1列数据,你指定2个列名自然会触发列数不匹配的报错。 - 注意你代码里写的数据源变量是
data,前面定义的度字典是d,要先确认变量名正确,不要传错数据源。
解决方案
两种可直接使用的实现方式:
方法1:直接用字典条目构造(更简洁)
直接提取字典的(节点, 度)元组列表作为DataFrame的输入:
degree = pd.DataFrame(d.items(), columns=['N', 'Degree'])
方法2:适配orient='index'的写法
如果你需要保留orient='index'的用法,先给单例数据指定对应列名,再把行索引转成节点列:
degree = pd.DataFrame.from_dict(d, orient='index', columns=['Degree']).reset_index(names='N')
两种方法输出的结构完全符合你的要求:第一列N存储节点名,第二列Degree存储对应节点的度。
内容的提问来源于stack exchange,提问作者LdM
相关产品推荐
相关产品推荐

