Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine Pandas-Listenspalte in mehrere Zeilen umwandeln?

Wie kann ich eine Pandas-Listenspalte in mehrere Zeilen umwandeln?

Susan Sarandon
Freigeben: 2024-11-27 07:49:09
Original
1046 Leute haben es durchsucht

How Can I Transform a Pandas Column of Lists into Multiple Rows?

Pandas-Listenspalte: Erstellen einer Zeile für jedes Listenelement

In Pandas-Datenrahmen kann es erforderlich sein, eine Spalte mit Listen zu konvertieren in mehrere Zeilen aufteilen, wobei jedes Element der Liste eine eigene Zeile einnimmt. Um dies zu erreichen, gibt es zwei praktikable Optionen.

Die integrierte Explosionsmethode von Pandas>=0.25

Für Pandas-Versionen 0.25 und höher gilt die .explode( )-Methode wurde speziell für diesen Zweck eingeführt. Es wandelt Listen effizient in einzelne Zeilen um.

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)]
                   })

df.explode('samples').reset_index(drop=True)  # Resetting the index for clarity
Nach dem Login kopieren

Diese Methode verarbeitet gemischte Spalten, die Listen und Skalare sowie leere Listen und NaNs enthalten. Es ist jedoch wichtig zu beachten, dass Explodieren jeweils nur für eine einzelne Spalte ausgeführt wird.

Benutzerdefinierte Funktion für Pandas <0,25

Für frühere Versionen von Pandas, a Eine benutzerdefinierte Funktion kann verwendet werden:

def explode_list_column(df, column):
    # Create an empty list to store the expanded rows
    exploded_rows = []

    # Iterate through each cell in the specified column
    for row in df[column]:
        # Iterate through each element in the list
        for element in row:
            # Add a new row to the list, copying data from the current row and adding the new element
            exploded_rows.append(list(row) + [element])

    # Convert the expanded rows into a DataFrame
    return pd.DataFrame(exploded_rows, columns=df.columns + ['list_element'])
Nach dem Login kopieren

Diese Funktion verwendet einen DataFrame und den Namen der Spalte, die Listen als Parameter enthält, und gibt einen neuen DataFrame mit zurück eine Spalte für jedes Listenelement.

# Applying the exploding function
exploded_df = explode_list_column(df, 'samples')
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich eine Pandas-Listenspalte in mehrere Zeilen umwandeln?. 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