Dans ce scénario, vous souhaitez créer un DataFrame pandas à partir d'un dictionnaire imbriqué où la hiérarchie se compose de :
Le DataFrame souhaité doit avoir des ID utilisateur comme index et des catégories et attributs comme colonnes.
Une approche efficace utilise celle des pandas MultiIndex, qui permet la création d'une structure d'index multi-niveaux. Pour utiliser cette méthode :
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'}}} df = 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') print(df) att_1 att_2 12 Category 1 1 whatever Category 2 23 another 15 Category 1 10 foo Category 2 30 bar
Vous pouvez également créer le DataFrame de manière incrémentielle via la concaténation :
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')) df = pd.concat(frames, keys=user_ids) print(df) att_1 att_2 12 Category 1 1 whatever Category 2 23 another 15 Category 1 10 foo Category 2 30 bar
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!