spitfiredd
spitfiredd

Reputation: 3135

How to build a dataframe from values in a json string that is a list of dictionaries?

I have a giant list of values that I've downloaded and I want to build and insert them into a dataframe.

I thought it would be as easy as:

import pandas as pd

df = pd.DataFrame()
records = giant list of dictionary

df['var1'] = records[0]['key1']
df['var2'] = records[0]['key2']

and I would get a dataframe such as

var1 var2
val1 val2

However, my dataframe appears to be empty? I can individually print values from records no problem.

Simple Example:

t = [{'v1': 100, 'v2': 50}]
df['var1'] = t[0]['v1']
df['var2'] = t[0]['v2']

I would like to be:

var1 var2
100  50

Upvotes: 1

Views: 51

Answers (2)

piRSquared
piRSquared

Reputation: 294278

One entry of your list of dictionaries looks like something you'd pass to the pd.Series constructor. You can turn that into a pd.DataFrame if you want to with the series method pd.Series.to_frame. I transpose at the end because I assume you wanted the dictionary to represent one row.

pd.Series(t[0]).to_frame().T

    v1  v2
0  100  50

Upvotes: 1

Dadep
Dadep

Reputation: 2788

Pandas do exactly that for you !

>>> import pandas as pd
>>> t = [{'v1': 100, 'v2': 50}]
>>> df=pd.DataFrame(t)
>>> df
    v1  v2
0  100  50

EDIT

>>> import pandas as pd
>>> t = [{'v1': 100, 'v2': 50}]
>>> df=pd.DataFrame([t[0]['v1']], index=None, columns=['var1'])
>>> df
    0
0  100  

Upvotes: 1

Related Questions