Pandas: so verwenden sie apply und lambda zusammen


Sie können die folgende grundlegende Syntax verwenden, um eine Lambda-Funktion auf einen Pandas-DataFrame anzuwenden:

 df[' col '] = df[' col ']. apply ( lambda x: ' value1 ' if x < 20 else ' value2 ')

Die folgenden Beispiele zeigen, wie diese Syntax in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

Beispiel 1: Verwenden Sie Apply und Lambda, um eine neue Spalte zu erstellen

Der folgende Code zeigt, wie Sie mit apply und lambda eine neue Spalte erstellen, deren Werte von den Werten einer vorhandenen Spalte abhängen:

 #create new column called 'status'
df[' status '] = df[' points ']. apply ( lambda x: ' Bad ' if x < 20 else ' Good ')

#view updated DataFrame
print (df)

  team points assists status
0 A 18 5 Bad
1 B 22 7 Good
2 C 19 7 Bad
3 D 14 9 Bad
4 E 14 12 Bad
5 F 11 9 Bad
6 G 20 9 Good
7:28 4 Good

In diesem Beispiel haben wir eine neue Spalte namens Status erstellt, die die folgenden Werte annimmt:

  • Schlecht “, wenn der Wert in der Punktespalte kleiner als 20 war.
  • Gut “, wenn der Wert in der Punktespalte größer oder gleich 20 war.

Beispiel 2: Verwenden Sie Apply und Lambda, um eine vorhandene Spalte zu ändern

Der folgende Code zeigt, wie Sie mit apply und lambda eine vorhandene Spalte im DataFrame ändern:

 #modify existing 'points' column
df[' points '] = df[' points ']. apply ( lambda x: x/2 if x < 20 else x*2)

#view updated DataFrame
print (df)

  team points assists
0 to 9.0 5
1 B 44.0 7
2 C 9.5 7
3D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 A.M. 56.0 4

In diesem Beispiel ändern wir die Werte der vorhandenen Punktspalte mithilfe der folgenden Regel in der Lambda-Funktion:

  • Wenn der Wert kleiner als 20 ist, teilen Sie den Wert durch 2.
  • Wenn der Wert größer oder gleich 20 ist, multiplizieren Sie den Wert mit 2.

Mit dieser Lambda-Funktion konnten wir die Werte der vorhandenen Punktspalte ändern.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere allgemeine Funktionen in Pandas ausgeführt werden:

So wenden Sie eine Funktion auf Pandas Groupby an
So füllen Sie NaN mit Werten aus einer anderen Spalte in Pandas

Einen Kommentar hinzufügen

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