Home > Backend Development > Python Tutorial > How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?

How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?

Barbara Streisand
Release: 2024-11-30 17:25:13
Original
467 people have browsed it

How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?

Constructing a Pandas DataFrame from Nested Dictionary Values with Hierarchical Indexing

Consider a nested dictionary, user_dict, where the first level keys represent UserIds, the second level keys are Categories, and the third level keys are various Attributes. The goal is to construct a pandas DataFrame with a hierarchical index using the values in the third level.

To achieve this, we need to reshape the dictionary's keys into tuples representing the hierarchical index. Using pd.DataFrame.from_dict, we can create a DataFrame with the correct index structure:

user_dict = {12: {'Category 1': {'att_1': 1, 'att_2': 'whatever'},
                  'Category 2': {'att_1': 23, 'att_2': 'another'}},
             15: {'Category 1': {'att_1': 10, 'att_2': 'foo'},
                  'Category 2': {'att_1': 30, 'att_2': 'bar'}}}

pd.DataFrame.from_dict({(i,j): user_dict[i][j] 
                           for i in user_dict.keys() 
                           for j in user_dict[i].keys()},
                       orient='index')


               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar
Copy after login

An alternative approach involves concatenating individual DataFrames created from each dictionary entry:

user_ids = []
frames = []

for user_id, d in user_dict.iteritems():
    user_ids.append(user_id)
    frames.append(pd.DataFrame.from_dict(d, orient='index'))

pd.concat(frames, keys=user_ids)

               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar
Copy after login

Both methods effectively construct a DataFrame with a hierarchical index using the values from the nested dictionary's third level.

The above is the detailed content of How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template