当前位置:  开发笔记 > 编程语言 > 正文

从字典列表到np数组数组,反之亦然

如何解决《从字典列表到np数组数组,反之亦然》经验,为你挑选了1个好方法。

我试图找到将字典列表转换为numpy数组的最佳方法(用NULL填充缺失值).我还需要相反的方法:将numpy数组数组转换为字典列表(给定键的标题).

问题: Python字典没有排序.在处理大量行时,理解列表不是最佳选择.

例:

listOfDicts = [{'key1': 10, 'key2': 15, 'key3': 19},
               {'key1': 20, 'key2': 25, 'key3': 29},
               {'key1': 30, 'key2': 35, 'key3': 39},
               {'key1': 40, 'key2': 45, 'key3': 49}]

预期产量:

[[10 15 19]
 [20 25 29]
 [30 35 39]
 [40 45 49]]

为什么我需要这个:我需要这个,因为我正在将Python脚本集成到Splunk搜索中.Splunk的输入是一个字典列表,由返回splunk.Intersplunk.getOrganizedResults().并显示我们需要调用的输出,splunk.Intersplunk.outputResults(results)其中results也是一个字典列表



1> foglerit..:

您可以使用pandas轻松完成此操作:

import pandas as pd
listOfDicts = [{"key1":10, "key3":19},
               {"key1":20, "key2":25, "key3":29},
               {"key1":30, "key2":35, "key3":39},
               {"key1":40, "key2":45, "key3":49}]

df = pd.DataFrame(listOfDicts)
vals = df.values
vals

array([[10, nan, 19],
       [20, 25,  29],
       [30, 35,  39],
       [40, 45,  49]])

要将NumPy数组转换为字典,您可以使用:

df2 = pd.DataFrame(vals, columns=df.columns)
df2.to_dict(orient='records')

[{'key1': 10.0, 'key2': nan, 'key3': 19.0},
 {'key1': 20.0, 'key2': 25.0, 'key3': 29.0},
 {'key1': 30.0, 'key2': 35.0, 'key3': 39.0},
 {'key1': 40.0, 'key2': 45.0, 'key3': 49.0}]

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有