Maison >développement back-end >Tutoriel Python >Comment puis-je créer un DataFrame Pandas avec un index hiérarchique à partir d'un dictionnaire imbriqué ?

Comment puis-je créer un DataFrame Pandas avec un index hiérarchique à partir d'un dictionnaire imbriqué ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-02 18:52:12261parcourir

How Can I Create a Pandas DataFrame with a Hierarchical Index from a Nested Dictionary?

Construction d'un DataFrame pandas à partir d'un dictionnaire imbriqué avec index hiérarchique

Cet article aborde la nécessité de convertir un dictionnaire imbriqué en un DataFrame pandas avec un index hiérarchique. Le dictionnaire, structuré avec des UserIds comme premier niveau, des Catégories comme deuxième niveau et divers attributs comme troisième niveau, pose un défi dans la création de la structure DataFrame souhaitée.

Construire un DataFrame avec l'index hiérarchique prévu , la première solution consiste à remodeler le dictionnaire imbriqué. Chaque clé du dictionnaire doit être un tuple correspondant aux valeurs du multi-index. En utilisant pd.DataFrame.from_dict et en définissant orient='index', le DataFrame peut être créé :

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')

Une approche alternative consiste à construire le DataFrame en concaténant des dataframes de composants. Cette méthode ajoute le DataFrame pour chaque UserId comme suit :

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)

En implémentant l'une de ces méthodes, un DataFrame pandas avec un index hiérarchique peut être construit à partir d'un dictionnaire imbriqué, simplifiant ainsi l'organisation et l'analyse des données. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn