Pandas: so teilen sie einen dataframe nach spaltenwert auf


Sie können die folgende grundlegende Syntax verwenden, um einen Pandas-DataFrame nach Spaltenwert aufzuteilen:

 #define value to split on
x = 20

#define df1 as DataFrame where 'column_name' is >= 20
df1 = df[df[' column_name '] >= x]

#define df2 as DataFrame where 'column_name' is < 20
df2 = df[df[' column_name '] < x]

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

Beispiel: Pandas DataFrame nach Spaltenwert aufteilen

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [22, 24, 19, 18, 14, 29, 31, 16],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

        team points rebounds
0 to 22 11
1 B 24 8
2 C 19 10
3 D 18 6
4 E 14 6
5 F 29 5
6 G 31 9
7:16:12

Wir können den folgenden Code verwenden, um den DataFrame in zwei DataFrames aufzuteilen, wobei der erste die Zeilen enthält, in denen die „Punkte“ größer oder gleich 20 sind, und der zweite die Zeilen enthält, in denen die „Punkte“ kleiner als 20 sind:

 #define value to split on
x = 20

#define df1 as DataFrame where 'points' is >= 20
df1 = df[df[' points '] >= x]

print (df1)

  team points rebounds
0 to 22 11
1 B 24 8
5 F 29 5
6 G 31 9

#define df2 as DataFrame where 'points' is < 20
df2 = df[df[' points '] < x]

print (df2)

  team points rebounds
2 C 19 10
3 D 18 6
4 E 14 6
7:16:12

Beachten Sie, dass wir auch die Funktion reset_index() verwenden können, um die Indexwerte für jeden resultierenden DataFrame zurückzusetzen:

 #define value to split on
x = 20

#define df1 as DataFrame where 'points' is >= 20
df1 = df[df[' points '] >= x]. reset_index (drop= True )

print (df1)

  team points rebounds
0 to 22 11
1 B 24 8
2 F 29 5
3 G 31 9

#define df2 as DataFrame where 'points' is < 20
df2 = df[df[' points '] < x]. reset_index (drop= True )

print (df2)

  team points rebounds
0 C 19 10
1 D 18 6
2 E 14 6
3:16:12

Beachten Sie, dass der Index jedes resultierenden DataFrame jetzt bei 0 beginnt.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden

Einen Kommentar hinzufügen

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