Skip to content Skip to sidebar Skip to footer

How To Convert A Defaultdict(list) To Pandas Dataframe

I have a defaultdict(list) object that is of this structure: {id: [list[list]]} for example, 'a1': [[0.01, 'cat']], 'a2': [[0.09, 'cat']], 'a3': [[0.5, 'dog']], ... I'd like t

Solution 1:

I believe you need:

df = pd.DataFrame([[k] + v[0] for k, v in my_dict.items()], 
                   columns=['id', 'score', 'category'])

Or:

df = pd.DataFrame([(k, v[0][0], v[0][1]) for k, v in my_dict.items()], 
                   columns=['id', 'score', 'category'])

Solution 2:

Using a list comprehension

Ex:

import pandas as pd
d = {'a1': [[0.01, 'cat']], 'a2': [[0.09, 'cat']],'a3': [[0.5, 'dog']]}


df = pd.DataFrame([[k] + j for k,v in d.items() for j in v], columns=['id', 'score', 'category'])
print(df)

Output:

id  score category
0  a1   0.01      cat
1  a3   0.50      dog
2  a2   0.09      cat

Post a Comment for "How To Convert A Defaultdict(list) To Pandas Dataframe"