![](/img/trans.png)
[英]How to create a Pandas DataFrame from a list of OrderedDicts?
[英]DataFrame to List of OrderedDicts - how to preserve order?
一个转换时DataFrame
到OrderedDict
与to_dict
和into
我不能找到一个办法把它保持的记录的顺序。 有没有办法在不循环记录和手动转换的情况下做到这一点?
DataFrame([{"B": 1, "A": 2}]).to_dict(orient='records', into=OrderedDict)
> [OrderedDict([('A', 2), ('B', 1)])]
更新:无法在我的调试器之外重现。 我认为python的 pprint 模块正在丢弃订单。 这也是我第一次开始进入这个兔子洞的方式 - 我没有注意到我的订购问题是在我将数据打印到控制台后才开始的。 我认为 VS Code python 插件也在显示调试控制台输出之前以某种方式使用了 pprint,这再次丢弃了顺序。 我会结束这个问题,非常抱歉浪费了时间!
成功的关键是传递一个初始化的实例,而不仅仅是一个类。
将您的代码更改为:
from collections import OrderedDict
dd = OrderedDict()
result = df.to_dict('records', into=dd)
实际上,您可以使用defaultdict获得几乎相同的结果(也从collections导入):
dd = defaultdict(list)
result = df.to_dict('records', into=dd)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.