Erstellen eines Pandas-DataFrames aus verschachtelten Wörterbüchern
Bei der Arbeit mit verschachtelten Wörterbüchern kann es schwierig sein, die Daten in einen Pandas-DataFrame zu konvertieren eine Art und Weise, die mit der gewünschten Struktur übereinstimmt. Insbesondere das Extrahieren von Daten aus der tiefsten Ebene des Wörterbuchs als Reihe kann umständlich sein.
Angenommen, Sie haben ein Wörterbuch, das wie folgt strukturiert ist:
Das Ziel besteht darin, unter Verwendung der Daten aus der dritten Ebene des Wörterbuchs einen DataFrame mit einem hierarchischen Index zu erstellen.
Mithilfe von a MultiIndex
Ein Pandas MultiIndex ist eine praktische Möglichkeit, hierarchische Daten in einem DataFrame darzustellen. Um einen MultiIndex aus dem verschachtelten Wörterbuch zu erstellen, formen Sie die Schlüssel in Tupel um, die den Multi-Index-Werten entsprechen.
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')
Dieser Ansatz erstellt einen DataFrame mit einem hierarchischen Index, wobei die erste Ebene die UserIds und enthält Die zweite Ebene enthält die Kategorien. Die Daten aus der dritten Ebene sind nun in Reihen organisiert, auf die sowohl über die Benutzer-ID als auch die Kategorie als Index zugegriffen werden kann.
Alternativer Ansatz mit Verkettung
Eine andere Möglichkeit, den DataFrame zu erstellen, ist durch Verketten von Komponentendatenrahmen.
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)
Diese Methode iteriert über das Wörterbuch und erstellt für jeden einen Datenrahmen Kombination aus Benutzer-ID und Kategorie. Die resultierenden Datenrahmen werden dann vertikal verkettet und mithilfe von Schlüsseln als hierarchischem Index verbunden.
Das obige ist der detaillierte Inhalt vonWie kann man effizient einen Pandas-DataFrame aus einem verschachtelten Wörterbuch mit einem hierarchischen Index erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!