Frage:
Wie können wir einen DataFrame transformieren? Zelle, die eine Liste enthält, in einzelne Zeilen für jeden darin enthaltenen Wert Liste?
Beispiel:
Betrachten Sie den folgenden DataFrame:
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | ['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia'] |
Unser Ziel ist es, die Spalte „next_neighbors“ zu „explodieren“ und eine neue zu erstellen Zeile für jeden Wert in der Liste.
Antwort:
In Pandas Version 0.25 und höher macht die Methode explosion() diesen Vorgang unkompliziert:
import pandas as pd df = (pd.DataFrame({'name': ['A.J. Price'] * 3, 'opponent': ['76ers', 'blazers', 'bobcats'], 'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3}) .set_index(['name', 'opponent'])) df.explode('nearest_neighbors')
Ausgabe:
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | Zach LaVine |
A.J. Price | 76ers | Jeremy Lin |
A.J. Price | 76ers | Nate Robinson |
A.J. Price | 76ers | Isaia |
A.J. Price | blazers | Zach LaVine |
A.J. Price | blazers | Jeremy Lin |
A.J. Price | blazers | Nate Robinson |
A.J. Price | blazers | Isaia |
A.J. Price | bobcats | Zach LaVine |
A.J. Price | bobcats | Jeremy Lin |
A.J. Price | bobcats | Nate Robinson |
A.J. Price | bobcats | Isaia |
Die Methode „explosive()“ entrollt effektiv jede Liste in der Spalte „nearest_neighbors“ und erstellt eine neue Zeile für jeden Wert.
Das obige ist der detaillierte Inhalt vonWie entpacke ich eine listenartige Spalte in separate Zeilen in einem DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!