我正在尝试用熊猫创建一个数据框,以显示说唱歌手网络内部的不同中心度度量。我试图在保持索引不变的情况下将其名称添加到数据框,以便可以通过数字和名称查找它们。我无法将名称添加到单独的列中。
我正在使用python3,networkx和pandas。由于我对编程非常陌生,因此所有尝试均导致编译错误。到目前为止,这是我尝试过的:
这是我缩短的数据框。 “ G”是一个图对象,已为其分配数据的节点和边。
rapper_df = pd.DataFrame({'Name': dict(name),
'Degree': dict(nx.degree(G))})
这是我尝试将标签添加到单独的字典中以添加到df中的操作。
name_undict = nx.get_node_attributes(G, 'label')
name = []
name.append(name_undict)
字典看起来像这样:https://i.imgur.com/A2YhqYH.png
我希望有一个带有索引,2列(“名称”和“学位”)以及行内相应数据的数据帧(例如:1-Snoop Dogg-4),但是我在第1行得到了编译错误代码的rapper_df部分。
ValueError:字典更新序列元素#0的长度为5214;需要2个
由于我对此很陌生,所以我机智的程度或多或少。感谢您抽出宝贵的时间来回答。
最好的问候, 兰加
答案 0 :(得分:-1)
您可能需要以下内容:
attr_dict = nx.get_node_attributes(G, 'label')
deg_dict = dict(nx.degree(G))
combined = [(name, deg) for (name, deg) in zip(attr_dict.values(),
deg_dict.values()) if attr_dict.keys() == deg_dict.keys()]
rapper_df = pd.DataFrame({'Name': [name[0] for name in combined],
'Degree': [deg[1] for deg in combined]})