栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在保留列顺序的同时创建DataFrame?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在保留列顺序的同时创建DataFrame?

原始解决方案:错误使用
collections.OrderedDict

在我最初的解决方案中,我建议使用python标准库中

OrderedDict
collections
包。

>>> import numpy as np>>> import pandas as pd>>> from collections import OrderedDict>>>>>> foo = np.array( [ 1, 2, 3 ] )>>> bar = np.array( [ 4, 5, 6 ] )>>>>>> pd.Dataframe( OrderedDict( { 'foo': pd.Series(foo), 'bar': pd.Series(bar) } ) )   foo  bar0    1    41    2    52    3    6

正确的解决方案:传递键值元组对以保留订单

但是,如前所述,如果将普通字典传递给

OrderedDict
,则顺序可能仍然无法保留,因为在构造字典时该顺序是随机的。但是,一种解决方法是将键值元组对的列表转换为
OrderedDict
,如下面的SO建议:

>>> import numpy as np>>> import pandas as pd>>> from collections import OrderedDict>>>>>> a = np.array( [ 1, 2, 3 ] )>>> b = np.array( [ 4, 5, 6 ] )>>> c = np.array( [ 7, 8, 9 ] )>>>>>> pd.Dataframe( OrderedDict( { 'a': pd.Series(a), 'b': pd.Series(b), 'c': pd.Series(c) } ) )   a  c  b0  1  7  41  2  8  52  3  9  6>>> pd.Dataframe( OrderedDict( (('a', pd.Series(a)), ('b', pd.Series(b)), ('c', pd.Series(c))) ) )   a  b  c0  1  4  71  2  5  82  3  6  9


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626346.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号