Heim > Backend-Entwicklung > Python-Tutorial > Wie zerlege ich verschachtelte Listen in einzelne Zeilen in einem Pandas-Datenrahmen?

Wie zerlege ich verschachtelte Listen in einzelne Zeilen in einem Pandas-Datenrahmen?

Mary-Kate Olsen
Freigeben: 2024-11-12 03:10:02
Original
533 Leute haben es durchsucht

How to Explode Nested Lists into Individual Rows in a Pandas Dataframe?

Auflösen verschachtelter Listen in einzelne Zeilen in einem Pandas-Datenrahmen

Im Bereich der Datenmanipulation mit Pandas besteht häufig die Notwendigkeit, Daten neu zu strukturieren als verschachtelte Listen in einzelnen Zeilen gespeichert. Stellen Sie sich einen Datenrahmen vor, in dem die Spalte „nearest_neighbors“ Wertelisten enthält. Das Ziel besteht darin, diese Listen zu „explodieren“ und für jeden Wert innerhalb der Liste separate Zeilen zu erstellen.

Pandas 0.25 vereinfacht das Explodieren von Listen mit der Methode „explosive()“

Für Pandas In den Versionen 0.25 und höher wird das Erweitern von Listen in Spalten durch die Einführung der explosion()-Methode erheblich vereinfacht. Um seine Funktionalität zu demonstrieren, erstellen wir den Beispieldatenrahmen neu:

import pandas as pd

# Original DataFrame
df = pd.DataFrame({'name': ['A.J. Price'] * 3, 
                    'opponent': ['76ers', 'blazers', 'bobcats'], 
                    'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3})

# Set the index for easier reference
df = df.set_index(['name', 'opponent'])
Nach dem Login kopieren

Auflösen der verschachtelten Listen

Mit der Methode explosion() können wir die „nearest_neighbors“ aufteilen. Spalte nach ihren Listenelementen, wodurch für jeden Wert separate Zeilen erstellt werden:

# Explode the list-like column
df_exploded = df.explode('nearest_neighbors')
Nach dem Login kopieren

Ausgabe nach der Explosion

print(df_exploded)
Nach dem Login kopieren
                    nearest_neighbors
name       opponent                  
A.J. Price 76ers          Zach LaVine
           76ers           Jeremy Lin
           76ers        Nate Robinson
           76ers                Isaia
           blazers        Zach LaVine
           blazers         Jeremy Lin
           blazers      Nate Robinson
           blazers              Isaia
           bobcats        Zach LaVine
           bobcats         Jeremy Lin
           bobcats      Nate Robinson
           bobcats              Isaia
Nach dem Login kopieren

Wie Sie sehen können, jeder Wert aus der Liste in der Spalte „nearest_neighbors“ wird jetzt als separate Zeile im entsprechenden Gegnerindex dargestellt.

Andere Methoden zur Listenerweiterung

Für Pandas-Versionen vor 0,25 gab es andere Ansätze, Listen in Spalten zu erweitern. Diese Methoden erforderten eine Kombination von Operationen wie Apply, Lambda und List Comprehension. Mit der Einführung der explosion()-Methode sind diese komplexeren Ansätze jedoch nicht mehr erforderlich.

Das obige ist der detaillierte Inhalt vonWie zerlege ich verschachtelte Listen in einzelne Zeilen in einem Pandas-Datenrahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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