Pandas: so teilen sie eine listenspalte in mehrere spalten auf


Sie können die folgende grundlegende Syntax verwenden, um eine Listenspalte in mehrere Spalten in einem Pandas-DataFrame aufzuteilen:

 #split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])

#join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 )

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Teilen Sie eine Listenspalte in Pandas in mehrere Spalten auf

Angenommen, wir haben den folgenden Pandas-DataFrame, in dem die Spalte namens „ points“ Wertelisten enthält:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Heat', 'Kings', 'Suns'],
                   ' points ': [[99, 105], [94, 113], [99, 97], [87, 95]]})

#view DataFrame
print (df)

    team points
0 Mavs [99, 105]
1 Heat [94, 113]
2 Kings [99, 97]
3 Suns [87, 95]

Mit der folgenden Syntax können wir einen neuen DataFrame erstellen, in dem die Punktespalte in zwei neue Spalten namens game1 und game2 aufgeteilt wird:

 #split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])

#view DataFrame
print (split)

   game1 game2
0 99 105
1 94 113
2 99 97
3 87 95

Wenn wir möchten, können wir diesen geteilten DataFrame dann mit der Funktion concat() mit dem ursprünglichen DataFrame verbinden:

 #join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 ) 

#view updated DataFrame
print (df)

    team points game1 game2
0 Mavs [99, 105] 99 105
1 Heat [94, 113] 94 113
2 Kings [99, 97] 99 97
3 Suns [87, 95] 87 95

Schließlich können wir die ursprüngliche Punktespalte aus dem DataFrame entfernen, wenn wir möchten:

 #drop original points column
df = df. drop (' points ', axis= 1 )

#view updated DataFrame
print (df)

    team game1 game2
0 Mavs 99 105
1 Heat 94 113
2 Kings 99 97
3 Suns 87 95

Das Endergebnis ist ein DataFrame, in dem die ursprüngliche Punktespalte der Listen nun in zwei neue Spalten namens game1 und game2 aufgeteilt ist.

Hinweis : Wenn Ihre Listenspalte eine ungerade Anzahl von Werten in jeder Liste enthält, füllt Pandas beim Aufteilen der Listen in Spalten einfach die fehlenden Werte mit NaN- Werten auf.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So drucken Sie Pandas DataFrame ohne Index
So zeigen Sie alle Zeilen in einem Pandas DataFrame an
So überprüfen Sie den Typ aller Spalten in Pandas DataFrame

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert