Python 如何快速将pandas数据帧行转换为ordereddict
正在寻找一种快速的方法,将pandas数据帧中的一行转换为有序的dict,而不使用out using list。这个列表很好,但如果数据集很大,则需要很长时间。我使用菲奥娜GIS阅读器,行是有序的DISTS,给出了数据类型的模式。我使用熊猫来连接数据。在很多情况下,行将具有不同的类型,因此我在考虑使用string类型转换为numpy数组 不幸的是,您不能只执行应用程序(因为它将应用程序放回数据帧): 但您可以将列表理解用于: 如果可以使用生成器(而不是列表)来处理您正在处理的任何内容,那么这通常会更有效率:Python 如何快速将pandas数据帧行转换为ordereddict,python,pandas,dataframe,ordereddictionary,Python,Pandas,Dataframe,Ordereddictionary,正在寻找一种快速的方法,将pandas数据帧中的一行转换为有序的dict,而不使用out using list。这个列表很好,但如果数据集很大,则需要很长时间。我使用菲奥娜GIS阅读器,行是有序的DISTS,给出了数据类型的模式。我使用熊猫来连接数据。在很多情况下,行将具有不同的类型,因此我在考虑使用string类型转换为numpy数组 不幸的是,您不能只执行应用程序(因为它将应用程序放回数据帧): 但您可以将列表理解用于: 如果可以使用生成器(而不是列表)来处理您正在处理的任何内容,那么这通常
In [6]: (OrderedDict(row) for i, row in df.iterrows())
Out[6]: <generator object <genexpr> at 0x10466da50>
[6]中的:(i的OrderedDict(行),df.iterrows()中的行)
出[6]:
这是在0.21.0+
函数中通过参数实现的
:
df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
print (df)
a b
0 1 2
1 3 4
d = df.to_dict(into=OrderedDict, orient='index')
print (d)
OrderedDict([(0, OrderedDict([('a', 1), ('b', 2)])), (1, OrderedDict([('a', 3), ('b', 4)]))])
这是@jezrael答案中to_dict
进入
关键字参数的最佳答案
In [6]: (OrderedDict(row) for i, row in df.iterrows())
Out[6]: <generator object <genexpr> at 0x10466da50>
df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
print (df)
a b
0 1 2
1 3 4
d = df.to_dict(into=OrderedDict, orient='index')
print (d)
OrderedDict([(0, OrderedDict([('a', 1), ('b', 2)])), (1, OrderedDict([('a', 3), ('b', 4)]))])