Pandas DataFrame DataFrame.apply() Funktion
-
Syntax von
pandas.DataFrame.apply()
: -
Beispiel-Codes:
DataFrame.apply()
Methode -
Beispiel-Codes: Funktion auf jede Spalte mit
DataFrame.apply()
anwenden -
Beispiel Codes: Anwenden der Funktion auf jede Zeile mit der Methode
DataFrame.apply()
-
Beispielcodes:
DataFrame.apply()
Methode mitresult_type
Parameter
Die Funktion pandas.DataFrame.apply()
wendet die Eingabefunktion auf jedes Element entlang der Zeile oder Spalte des Aufrufers Pandas DataFrame
an.
Syntax von pandas.DataFrame.apply()
:
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
Parameter
func |
Die Funktion, die auf jede Zeile oder Spalte anzuwenden ist |
axis |
Funktion entlang der row (axis=0) oder column (axis=1) anwenden |
raw |
Boolesch. Zeile/Spalte als Series -Objekt(raw=False ) oder ndarray -Objekt(raw=True ) übergeben |
result_type |
{expand , reduce , broadcast , None } Typ der Ausgabe der Operation nur anwendbar für axis=1 (Spalten)Neu in Version 0.23.0 |
args |
Positionsargumente für die Funktion func . |
**kwds |
Schlüsselwort-Argumente für die Funktion func . |
Zurück
Es gibt den Dataframe
zurück, nachdem die Eingabefunktion entlang der angegebenen Achse angewendet wurde.
Beispiel-Codes: DataFrame.apply()
Methode
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: x**2)
print(modified_df)
Ausgabe:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 16
1 4 1
2 9 64
Wir wenden eine lambda
-Funktion lambda x: x**2
auf alle Elemente von DataFrame
an, indem wir die Methode DataFrame.apply()
verwenden.
Lambda-Funktionen sind einfachere Wege, um Funktionen in Python zu definieren.
lambda x: x**2
repräsentiert die Funktion, die x
als Eingabe nimmt und x**2
als Ausgabe zurückgibt.
Beispiel-Codes: Funktion auf jede Spalte mit DataFrame.apply()
anwenden
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(np.sum)
print("Modified DataFrame")
print(modified_df)
Ausgabe:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
X 6
Y 13
dtype: int64
Hier wird np.sum
auf jede Spalte angewendet, weil axis=0
(Standardwert) in diesem Fall.
Wir erhalten also die Summe der Elemente in jeder Spalte nach Anwendung der Methode df.apply()
.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: (x**2) if x.name == 'X' else x)
print(modified_df)
Ausgabe:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 4
1 4 1
2 9 8
Wenn wir die Funktion nur auf bestimmte Spalten anwenden wollen, modifizieren wir unsere Funktionsdefinition unter Verwendung der if-Anweisung, um Spalten zu filtern. Im Beispiel modifiziert die Funktion nur den Wert der Spalten mit dem Spaltennamen X
.
Beispiel Codes: Anwenden der Funktion auf jede Zeile mit der Methode DataFrame.apply()
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(np.sum, axis=1)
print("Modified DataFrame")
print(modified_df)
Ausgabe:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 5
1 3
2 11
dtype: int64
Hier wird np.sum
auf jede Zeile zu einem Zeitpunkt angewendet, wie wir in diesem Fall axis=1
gesetzt haben.
Wir erhalten also die Summe der einzelnen Elemente aller Zeilen, nachdem wir die df.apply()
Methode verwendet haben.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: (x**2) if x.name in [0,1] else x,
axis=1)
print(modified_df)
Ausgabe:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 16
1 4 1
2 3 8
Wenn wir die Funktion nur auf bestimmte Zeilen anwenden wollen, modifizieren wir unsere Funktionsdefinition unter Verwendung der if-Anweisung, um Zeilen zu filtern. Im Beispiel modifiziert die Funktion nur die Werte der Zeilen mit dem Index 0
und 1
, d.h. nur die erste und zweite Zeile.
Beispielcodes: DataFrame.apply()
Methode mit result_type
Parameter
Wenn wir den Standardwert des Parameters result_type
verwenden, d.h. None
, wird der DataFrame
ohne jegliche Änderung zurückgegeben.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(lambda x:[1,1],axis=1)
print("Modified DataFrame")
print(modified_df)
Ausgabe:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 [1, 1]
1 [1, 1]
2 [1, 1]
dtype: object
Im obigen Beispiel wird jede Zeile einzeln an eine Funktion übergeben, und der Wert von row wird auf [1,1]
gesetzt.
Wenn wir den Typ des Ergebnisses modifizieren wollen, nachdem die Funktion mit dem DataFrame
gearbeitet hat, können wir Werte für den result_type
entsprechend unseren Bedürfnissen setzen.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(lambda x:[1,1],
axis=1,
result_type='expand')
print("Modified DataFrame")
print(modified_df)
Ausgabe:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 1
0 1 1
1 1 1
2 1 1
Das Setzen von result_type='expand'
erweitert alle listenartigen Werte zu Spalten eines DataFrame.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn