在我关于Convert Dataframe to Nested Dictionary in Python的问题之后,我一直在尝试将Pandas数据帧转换为嵌套字典
当前的挑战是将np.ndarray中的多个词典合并为一个词典
我当前的输出dkl
是
array([{0.7863340563991272: 0.0002639915522703274},
{0.7863340563991272: 0.0006863780359028511}], dtype=object)
当检查type
结果时numpy.ndarray
我需要让dkl
成为
{0.7863340563991272: 0.0002639915522703274,
0.7863340563991272: 0.0006863780359028511}
我没能得到想要的结果。我试图将dkl
变成l1 = list(dkl)
,结果是:
[{0.7863340563991272: 0.0002639915522703274},
{0.7863340563991272: 0.0006863780359028511}]
我现在可以得到上面列表中的两个元素it1 = {0.7863340563991272: 0.0002639915522703274}
和it2 = {0.7863340563991272: 0.0006863780359028511}
,我正试图将它们合并到一个字典中。我试过:
dict(it1.items() + it2.items())
导致:
TypeError Traceback (most recent call last)
<ipython-input-150-4422fd31b345> in <module>
----> 1 dict(it1.items() + it2.items())
TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items'
简而言之,我需要从1到2。 更新:Ref在评论中提到,这种输出形式在dict中是不可能的,我很想了解它是如何产生的:
原因是我需要复制一个数据集,它的结构如上所示,在我想要的输出中,如果不能使用dict,我不知道它是如何创建的
对于(大多数)实际用途,对象数据类型数组是一个列表。您的
list(dkl)
会显式地执行此操作,或者tolist()
:合并词典的一种方法是
update
:在您的例子中,两者都有相同的键,因此结果是列表中的最后一个字典
这是不可能的,因为字典的键是唯一的
其他可能的合并包括使用匹配键添加值,或使用值列表。我不确定我是否应该花时间在这些东西上,因为你似乎不知道你真正需要什么
您尝试添加
items
;使用py3列表(项),我们可以得到元组列表:其中元组包含键和值。但是除了连接,我不知道你想用这些元组做什么
总之,您有一组字典,它们可能有匹配的键,也可能没有匹配的键。这里没什么特别的,小聪明
相关问题 更多 >
编程相关推荐