Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate a pandas dataframe from ordereddict?

Tags:

I am trying to create a pandas dataframe from an ordereddict to preserve the order of the values. But for some reason after creating the dataframe the fields are messed up again.

Here's the list of ordereddicts:

[OrderedDict([   ('key_a',   'value_a'),   ('key_b',   'value_b'), ]), OrderedDict([   ('key_a',   'value_c'),   ('key_b',   'value_d'), ]) ] 

Now how should I create a pandas DataFrame from these? What I am looking for is something like that (the important thing is the key_a and key_b etc column name order):

  key_a    key_b 0 value_a  value_b 1 value_c  value_d 

I have tried:

pd.DataFrame.from_records(orderedDictList) pd.DataFrame.from_dict(orderedDictList) 

Feel free to ask any additional questions.

like image 728
E. Muuli Avatar asked Jun 05 '17 08:06

E. Muuli


People also ask

How do I create a panda DataFrame?

To create a dataframe, we need to import pandas. Dataframe can be created using dataframe() function. The dataframe() takes one or two parameters. The first one is the data which is to be filled in the dataframe table.

How do you turn a dictionary into a data frame?

You can convert a dictionary to Pandas Dataframe using df = pd. DataFrame. from_dict(my_dict) statement.


1 Answers

Following this answer, you need to explicitly specify your column order:

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

Of course, first you need to ensure that you have an ordered dictionary.

like image 80
Adeel Ahmad Avatar answered Sep 28 '22 11:09

Adeel Ahmad