首页 > 解决方案 > 如何获取结果字典的值。使用 pandas to_dict() 方法时

问题描述

我从一个 pd 数据框开始:

   Node,prob
0  0   ,0.0035
1  1   ,0.0070
2  2   ,0.0025
3  3   ,0.0005
4  4   ,0.0105
5  5   ,0.0015
6  6   ,0.0085
7  7   ,0.0055
8  8   ,0.0060
9  9   ,0.0030

我有需要值(概率)的索引(节点)。指数为: array([0, 2, 4, 8, 9, 5, 3, 1])

我将数据框转换为字典并运行一个循环。我几乎得到了想要的结果。我已经迭代了所有 _todict 选项,并且“索引”和“记录”是效果最好的选项。:

nodes2 = nodes.to_dict("index")

for i in indices:
    print(nodes2[i])

结果:

{'Node,prob': '0,0.0035'}
{'Node,prob': '2,0.0025'}
{'Node,prob': '4,0.0105'}
{'Node,prob': '8,0.0060'}
{'Node,prob': '9,0.0030'}
{'Node,prob': '5,0.0015'}
{'Node,prob': '3,0.0005'}
{'Node,prob': '1,0.0070'}

理想情况下,我会得到一个由上述字典的值表示的 numpy 数组,如下所示。如何从字典中提取以下内容?跳这不是太混乱!提前致谢。

[
 [0 0.0035]
 [2 0.0025]
 [4 0.0105]
 [8 0.0060]
 [9 0.0030] 
 [5 0.0015]
 [3 0.0005]
 [1 0.0070]
]

标签: pandasnumpy

解决方案


如果您的示例输出正确

nodes2 = nodes.to_dict("index")
new_list = [ map(float, nodes2[i]['Node,prob'].split(',') for i in indices]
print(new_list)

推荐阅读