Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich verschachtelte Listen in Pandas DataFrames in separate Zeilen erweitern?

Wie kann ich verschachtelte Listen in Pandas DataFrames in separate Zeilen erweitern?

Linda Hamilton
Linda HamiltonOriginal
2024-12-17 02:38:25572Durchsuche

How Can I Expand Nested Lists in Pandas DataFrames into Separate Rows?

Entschlüsselung verschachtelter Listen in Pandas-Datenrahmen: Zeilenerweiterung

Beim Arbeiten mit Daten in Pandas-Datenrahmen stoßen Sie möglicherweise auf Spalten mit möglicherweise übergreifenden Listen mehrere Werte. Um die Analyse und Bearbeitung zu erleichtern, ist es notwendig, diese Listen in separate Zeilen umzuwandeln. Dieser Prozess, der als „Long Forming“ oder „Zeilenerweiterung“ bekannt ist, ermöglicht es jedem Listenelement, seine eigene Zeile zu belegen.

Um dies zu erreichen, bietet Pandas eine spezielle Methode namens .explode() , eingeführt in Version 0.25. Diese Methode wandelt die angegebene Liste enthaltende Spalte nahtlos in eine Reihe von Zeilen um, wobei jedes Element zu einer unabhängigen Zeile wird.

Implementierung:

Um das zu verwenden .explode()-Methode verwenden, geben Sie einfach den Spaltennamen an, den Sie erweitern möchten. Standardmäßig werden für jedes Element in der Spalte neue Zeilen erstellt, während die Werte in allen anderen Spalten erhalten bleiben.

Stellen Sie sich beispielsweise einen Datenrahmen vor, der eine Spalte „Beispiele“ mit Wertelisten enthält:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

Anwenden der Methode .explode():

df.explode('samples')

Ergebnisse im folgenden Datenrahmen:

   subject  trial_num  sample
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        2          1   -0.08
7        2          1   -4.22
8        2          1   -2.05
9        2          2    0.72
10       2          2    0.79
11       2          2    0.53

Wie Sie sehen können, hat jedes Listenelement jetzt seine eigene Zeile. Es ist erwähnenswert, dass die Methode zwar die Listen effizient abwickelt, dies jedoch jeweils für eine einzelne Spalte tut.

Zusätzliche Überlegungen:

  • Die Die Methode .explode() verarbeitet gemischte Spalten, die sowohl Listen als auch Skalarwerte enthalten, und stellt sicher, dass leere Listen und NaN-Werte erhalten bleiben entsprechend.
  • Wenn ein Datenrahmen mehrere Listen enthaltende Spalten hat, können Sie verschachtelte .explode()-Aufrufe verwenden, um sie einzeln abzuwickeln.
  • Wenn Sie dies spezifisch wünschen Spaltenreihenfolge: Sie können die Spaltenreihenfolge nach dem Aufruf von .explode() manuell neu anpassen.
  • Zurücksetzen des Index Die Verwendung von .reset_index(drop=True) wird empfohlen, um einen regulären Ganzzahlindex zu erhalten.

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Listen in Pandas DataFrames in separate Zeilen erweitern?. 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