I am trying to convert a nested dictionary with more than one level of nesting to a Pandas data frame, so I followed this solution:
new_df = pd.DataFrame.from_dict(nested_dict, orient="index")
but I got some columns as other dictionaries:
Saturday ... Friday
00501 {'data1': '', 'data2': ''} ... {'data1': 'DATA1-1', 'data2': '1'}
00544 {'data1': '', 'data2': ''} ... {'data1': 'DATA1-1', 'data2': '1'}
01001 {'data1': 'DATA1-1', 'data2': '2'} ... {'data1': 'DATA1-1', 'data2': '1'}
01002 {'data1': 'DATA1-2', 'data2': '2'} ... {'data1': 'DATA1-1', 'data2': '1'}
01003 {'data1': '', 'data2': ''} ... {'data1': 'DATA1-1', 'data2': '1'}
... ... ... ...
99363 {'data1': 'DATA1-2', 'data2': '2'} ... {'data1': 'DATA1-0', 'data2': '2'}
99371 {'data1': '', 'data2': ''} ... {'data1': 'DATA1-0', 'data2': '2'}
99401 {'data1': '', 'data2': ''} ... {'data1': 'DATA1-0', 'data2': '2'}
99402 {'data1': '', 'data2': ''} ... {'data1': 'DATA1-0', 'data2': '2'}
99403 {'data1': 'DATA1-2', 'data2': '2'} ... {'data1': 'DATA1-0', 'data2': '2'}
[41302 rows x 7 columns]
I can see that first-level keys of the dictionary ("zipcode") became the index of each row instead of another column, and the content of each second-level key became a stringified inner dictionary.
EDIT
This is the model for the original dictionary to convert to a data frame:
{
'00501': {
'Saturday': {'data1': 'DATA1-1', 'data2': ''},
'Sunday': {'data1': '', 'data2': ''},
...
},
'00544' {
'Saturday': {'data1': 'DATA1-1', 'data2': ''},
'Sunday': {'data1': '', 'data2': ''},
...
},
...
}
I tried this also, but I got a data frame with a single line and 289,114 columns (I can't find my mistake):
new_df = pd.json_normalize(nested_dict, max_level=1)
How can I convert the nested dictionary to a pandas data frame?