Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man listenartige Spalten in Pandas DataFrames effektiv auflösen?

Wie kann man listenartige Spalten in Pandas DataFrames effektiv auflösen?

Barbara Streisand
Freigeben: 2024-11-27 15:44:11
Original
951 Leute haben es durchsucht

How to Effectively Explode List-Like Columns in Pandas DataFrames?

Explodierende listenartige Spalten: Ein Leitfaden zum Erweitern von Datenrahmen

Problem:

In In Pandas-Datenrahmen können einige Zellen Listen mit mehreren Werten enthalten. Das Ziel besteht darin, den Datenrahmen so zu transformieren, dass jedes Listenelement eine separate Zeile einnimmt, während die Werte in anderen Spalten erhalten bleiben.

Lösung:

Methode 1: repeat()

Vor Pandas 0.25 wurde die Methode „repeat()“ üblicherweise zum Auflösen von Listen verwendet Spalten:

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

# Expand 'samples' column into separate rows using repeat()
df_exploded = df.assign(
    samples=df['samples'].str.join(',').str.split(',')
).explode('samples')

df_exploded = df_exploded.reset_index(drop=True)

# Add sample_num column to track list element order
df_exploded['sample_num'] = df_exploded.groupby('trial_num').cumcount()
Nach dem Login kopieren

Methode 2: explosion() (Pandas >= 0.25)

Mit der Veröffentlichung von Pandas 0.25 stellt die Methode .explode() bereit eine elegante Lösung:

df.explode('samples').reset_index(drop=True)
Nach dem Login kopieren

Diese Methode verarbeitet automatisch leere Listen und behält NaNs bei, um sicherzustellen, dass a umfassende Konvertierung.

Hinweis:

  • Die wiederholungsbasierte Methode kann explodierende Zeichenfolgenspalten verarbeiten, erfordert jedoch zunächst eine Aufteilung an einem Trennzeichen.
  • Die Methode explosion() explodiert jeweils eine einzelne Spalte.
  • Explodierte Datenrahmen erfordern möglicherweise eine weitere Verarbeitung, um einen eindeutigen Index zu erstellen und Listenelemente neu nummerieren.

Das obige ist der detaillierte Inhalt vonWie kann man listenartige Spalten in Pandas DataFrames effektiv auflösen?. 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