将字典列表转换为numpy矩阵?

Tam*_*ari 6 python numpy pandas

让给定的字典是

d = [{'a':1,'b':4},{'b':2}]
Run Code Online (Sandbox Code Playgroud)

所以基本上我想要一个这样的矩阵

  | 'a' | 'b'  |
 _______________
  |  1  |  4   |
  |  na |  2   |
Run Code Online (Sandbox Code Playgroud)

如何有效地做到这一点?

Joh*_*nck 6

Pandas DataFrame构造函数将立即为您提供所需的结果:

import pandas as pd
pd.DataFrame(d).values
Run Code Online (Sandbox Code Playgroud)

最后的.values部分将结果转换为您要求的NumPy数组。有些人会直接使用DataFrame。

  • 使用 DataFrame 可能很方便,但如果速度是一个问题,它似乎有点矫枉过正。我读过一篇(希望是可信的)文章,专门警告创建 DataFrame 的成本:https://www.linkedin.com/pulse/careful-when-using-sklearn-pandas-production-environment-longbin-chen /. 所以,我很好奇如果我们想避免创建 Pandas DataFrame 的开销,最有效的方法是什么。 (7认同)