Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从ordereddict生成熊猫数据帧?_Python_Pandas_Dataframe_Ordereddictionary - Fatal编程技术网

Python 从ordereddict生成熊猫数据帧?

Python 从ordereddict生成熊猫数据帧?,python,pandas,dataframe,ordereddictionary,Python,Pandas,Dataframe,Ordereddictionary,我试图从OrderedICT创建一个pandas数据帧,以保持值的顺序。但由于某种原因,在创建数据帧之后,字段又被弄乱了 以下是订购的图片列表: [OrderedDict([ ('key_a', 'value_a'), ('key_b', 'value_b'), ]), OrderedDict([ ('key_a', 'value_c'), ('key_b', 'value_d'), ]) ] 现在,我应该如何从这些数据创建熊猫数据帧?我要找的是这样的东西(重要

我试图从OrderedICT创建一个pandas数据帧,以保持值的顺序。但由于某种原因,在创建数据帧之后,字段又被弄乱了

以下是订购的图片列表:

[OrderedDict([
  ('key_a',
  'value_a'),
  ('key_b',
  'value_b'),
]),
OrderedDict([
  ('key_a',
  'value_c'),
  ('key_b',
  'value_d'),
])
]
现在,我应该如何从这些数据创建熊猫数据帧?我要找的是这样的东西(重要的是a键和b键等列名顺序):

我试过:

pd.DataFrame.from_records(orderedDictList)
pd.DataFrame.from_dict(orderedDictList)
请随意提出任何其他问题。

在回答以下问题时,您需要明确指定列顺序:

df = pd.DataFrame(orderedDictList, columns=orderedDictList.keys())

当然,首先您需要确保您有一个有序的字典。

您可以使用
集合
模块中的
计数器执行类似操作:

from collections import OrderedDict, Counter
import pandas as pd

a = {'key_a': 'value_a', 'key_b':'value_b'}
b = {'key_a': 'value_c', 'key_b':'value_d'}

ord_list = [OrderedDict(a), OrderedDict(b)]

col = Counter()
for k in ord_list:
    col.update(k)


df = pd.DataFrame([k.values() for k in ord_list], columns = col.keys())

print(df)
输出:

     key_b    key_a
0  value_b  value_a
1  value_d  value_c
这不起作用,因为列表没有键值对

您不需要指定列顺序,因为orderedDicts将固有地保留列顺序。以下工作将起作用:

df = pd.DataFrame(orderedDictList)

按照@AdeelAhmad的回答,我需要从一个OrderDict获取列:

df = pd.DataFrame(orderedDictList, columns=orderedDictList[0].keys())

希望对我有帮助。DataFrame(orderedDictList)
对我来说很好。
从_dict
开始,字典的格式是{'col_a':[val_1,val_2],'col_b':[val_3,val_4]},除非你通过
orient=index
df = pd.DataFrame(orderedDictList)
df = pd.DataFrame(orderedDictList, columns=orderedDictList[0].keys())