Erstellen eines Pandas-Datenrahmens aus verschachtelten Wörterbuchwerten mit hierarchischer Indizierung
Stellen Sie sich ein verschachteltes Wörterbuch vor, user_dict, bei dem die Schlüssel der ersten Ebene Benutzer-IDs darstellen. Die Schlüssel der zweiten Ebene sind Kategorien und die Schlüssel der dritten Ebene sind verschiedene Attribute. Das Ziel besteht darin, unter Verwendung der Werte auf der dritten Ebene einen Pandas-DataFrame mit einem hierarchischen Index zu erstellen.
Um dies zu erreichen, müssen wir die Schlüssel des Wörterbuchs in Tupel umformen, die den hierarchischen Index darstellen. Mit pd.DataFrame.from_dict können wir einen DataFrame mit der richtigen Indexstruktur erstellen:
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
Ein alternativer Ansatz besteht darin, einzelne DataFrames zu verketten, die aus jedem Wörterbucheintrag erstellt wurden:
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
Beide Methoden erstellen effektiv einen DataFrame mit einem hierarchischen Index unter Verwendung der Werte aus der dritten Ebene des verschachtelten Wörterbuchs.
Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Pandas-DataFrame mit hierarchischer Indizierung aus einem verschachtelten Wörterbuch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!