python - 按顺序从 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
解决方案
您可以构建一个字典,然后提供给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()})
推荐阅读
- python - python - 如何在空格数与Python中最后一个元素中的空格数不匹配的点处截断列表
- sql - 如何增加雪花中的表达式数量限制?
- laravel - laravel 上的 redis/phpredis 和 Elasticache 上的集群
- mongodb - 对 _id 唯一索引进行排序的 Mongodb 复合索引
- aws-lambda - 我可以使用这些服务中的任何一个来调用要终止的实例上的脚本以通知它即将终止吗?
- bash - 如何将计算结果添加到变量中
- javascript - 函数接受 0 到 5 之间的输入并输出 5 个元素的数组,用于在 UI 中生成 5 颗星
- javascript - 如何在返回响应的javascript中的event.respondWith()中放置一个函数
- html - 图标未显示在 Laravel 项目中但显示在 HTML 模板上
- python - 在 Python 中运行 numpy.random.randint() 后冻结输出