从ordereddict生成一个pandas数据帧?

E. *_*uli 14 python ordereddictionary dataframe pandas

我试图从ordereddict创建一个pandas数据帧,以保持值的顺序.但由于某些原因,在创建数据帧后,字段再次混乱.

这是orderdicts列表:

[OrderedDict([
  ('key_a',
  'value_a'),
  ('key_b',
  'value_b'),
]),
OrderedDict([
  ('key_a',
  'value_c'),
  ('key_b',
  'value_d'),
])
]
Run Code Online (Sandbox Code Playgroud)

现在我应该如何从这些创建一个pandas DataFrame?我正在寻找的是类似的东西(重要的是key_a和key_b等列名称顺序):

  key_a    key_b
0 value_a  value_b
1 value_c  value_d
Run Code Online (Sandbox Code Playgroud)

我试过了:

pd.DataFrame.from_records(orderedDictList)
pd.DataFrame.from_dict(orderedDictList)
Run Code Online (Sandbox Code Playgroud)

随意提出任何其他问题.

Ade*_*mad 17

答案之后,您需要明确指定列顺序:

df = pd.DataFrame(orderedDictList, columns=orderedDictList.keys())
Run Code Online (Sandbox Code Playgroud)

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


小智 5

df = pd.DataFrame(orderedDictList, columns=orderedDictList.keys())
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为列表没有键值对。

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

df = pd.DataFrame(orderedDictList)
Run Code Online (Sandbox Code Playgroud)