首页 > 解决方案 > 按顺序从 json 数组加载数据帧

问题描述

假设我在 python 中有以下数组:

[
    {'id': [1,2,3]},
    {'name': [4,3,2]},
    {'age': [9,0,1]},
]

我如何将其加载到熊猫数据框中?通常我pd.DataFrame从听写开始,但保持列顺序对我来说很重要。

最终数据应如下所示:

id     name       age
1      4          9
2      3          0
3      2          1

标签: pythonpandas

解决方案


您可以构建一个字典,然后提供给pd.DataFrame. 为保证保留列顺序,请使用collections.OrderedDict

from collections import OrderedDict

L = [{'id': [1,2,3]},
     {'name': [4,3,2]},
     {'age': [9,0,1]}]

df = pd.DataFrame(OrderedDict([(k, v) for d in L for k, v in d.items()]))

print(df)

   id  name  age
0   1     4    9
1   2     3    0
2   3     2    1

使用 Python 3.7+字典是插入顺序的,因此您可以使用常规dict

df = pd.DataFrame({k: v for d in L for k, v in d.items()})

推荐阅读