Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man mehrere Listenspalten in einem Pandas-DataFrame effizient entschachteln?

Wie kann man mehrere Listenspalten in einem Pandas-DataFrame effizient entschachteln?

Susan Sarandon
Susan SarandonOriginal
2024-11-17 20:58:02438Durchsuche

How to Efficiently Unnest Multiple List Columns in a Pandas DataFrame?

So entschachteln (explodieren) Sie mehrere Listenspalten in einem Pandas-DataFrame effizient

Problem: Auflösen verschachtelter Listenspalten in großen Datensätzen

Beim Umgang mit Bei Pandas DataFrames ist es manchmal erforderlich, Spalten, die Listen enthalten, in mehrere Zeilen zu „entschachteln“ oder „aufzulösen“. Dies kann jedoch ein rechenintensiver Vorgang sein, insbesondere bei großen Datensätzen.

Lösung: Verwendung von Pandas >= 1.3

Für Pandas-Versionen 1.3 und höher gibt es eine integrierte Funktion namens DataFrame.explode, mit dem Sie die Verschachtelung mehrerer Spalten gleichzeitig aufheben können. Diese Funktion erfordert, dass alle Listenspalten die gleiche Länge haben. So verwenden Sie es:

df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)

Lösung für Pandas < 1.3

Für ältere Versionen von Pandas ist ein etwas komplexerer Ansatz erforderlich:

  1. Legen Sie den Index des DataFrame so fest, dass er die Spalten enthält, die nicht aufgelöst werden sollen.
  2. Wenden Sie Series.explode auf jede Spalte an, die aufgelöst werden soll.
  3. Setzen Sie den Index zurück, um die nicht verschachtelten Daten zu erhalten DataFrame.
df.set_index(['A']).apply(pd.Series.explode).reset_index()

Effizienzüberlegungen

Beide Methoden bieten effiziente Lösungen, wobei set_index und explosion etwas schneller sind als DataFrame.explode. Die folgende Tabelle zeigt den Leistungsvergleich:

Method Time (seconds)
DataFrame.explode 0.00259
Set index and explode 0.00127
Stacking approach 0.120

Hinweis zur doppelten Frage

Während diese Frage ursprünglich als Duplikat markiert wurde, unterstreicht sie ausdrücklich die Notwendigkeit einer effizienten Methode, die große Probleme bewältigen kann Datensätze. Die Antworten auf die doppelte Frage konnten dieser Anforderung nicht angemessen gerecht werden.

Das obige ist der detaillierte Inhalt vonWie kann man mehrere Listenspalten in einem Pandas-DataFrame effizient entschachteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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