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!