Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich einen Pandas-DataFrame mit hierarchischer Indizierung aus einem verschachtelten Wörterbuch?

Wie erstelle ich einen Pandas-DataFrame mit hierarchischer Indizierung aus einem verschachtelten Wörterbuch?

Barbara Streisand
Freigeben: 2024-11-30 17:25:13
Original
543 Leute haben es durchsucht

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

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage