Pandas Series.map
Dieses Tutorial erklärt, wie wir Werte einer Pandas-Serie mit Hilfe der Methode Series.map()
durch einen anderen Wert ersetzen können.
import pandas as pd
my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])
print(my_series, "\n")
Ausgabe:
1 85
2 87
3 90
4 89
dtype: int64
Wir werden die Serie meine_serie
aus dem obigen Beispiel verwenden, um die Funktionsweise der map()
-Methode in Pandas zu erklären.
Pandas.Serie.map()
Syntax
Series.map(arg, na_action=None)
Sie gibt ein Series
-Objekt zurück, indem sie die Werte im aufrufenden Series
-Objekt basierend auf dem Parameter arg
ersetzt. Der Parameter arg
kann eine Funktion
, ein dictionary
oder ein Series
-Objekt sein, das die neuen Werte des Serien
-Objekts bestimmt.
Der Parameter na_action
kann None
oder 'ignore'
als Wert annehmen. Der Wert 'ignore'
der na_action
bedeutet, dass die NaN
-Werte in der Series
ignoriert werden und nichts mit ihnen gemacht wird.
Beispiel: Verwendung der map()
Methode für eine Pandas-Serie
import pandas as pd
my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])
altered_series = my_series.map({85: 80, 87: 80, 90: 90, 89: 80})
print("Initial Series:")
print(my_series, "\n")
print("Altered Series:")
print(altered_series, "\n")
Ausgabe:
Initial Series:
1 85
2 87
3 90
4 89
dtype: int64
Altered Series:
1 80
2 80
3 90
4 80
dtype: int64
Es werden die Elemente der my_series
in Abhängigkeit von den Werten ersetzt, die im Dictionary angegeben sind, das als Argument an die Methode map()
übergeben wurde.
Wir können auch Funktionen verwenden, um die Werte der Pandas-Serie zu ändern, indem wir die map()
-Methode verwenden.
import pandas as pd
my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])
altered_series = my_series.map(lambda x: str(x) + ".00")
print("Initial Series:")
print(my_series, "\n")
print("Altered Series:")
print(altered_series, "\n")
Ausgabe:
Initial Series:
1 85
2 87
3 90
4 89
dtype: int64
Altered Series:
1 85.00
2 87.00
3 90.00
4 89.00
dtype: object
Es wird jedes Element von my_series
genommen und .00
an das Ende jedes Elements in my_series
angehängt.
Beispiel: Verwenden der Methode map()
, um eine bestimmte Spalte eines DataFrame zu ändern
import pandas as pd
df_1 = pd.DataFrame(
{
"Column 1": [85, 87, 90, 89],
"Column 2": [55, 54, 56, 66],
"Column 3": [23, 95, 65, 45],
},
index=["1", "2", "3", "4"],
)
print("Initial DataFrame:")
print(df_1, "\n")
df_1["Column 1"] = df_1["Column 1"].map(lambda x: x * 10)
print("DataFrame after changing Column 1:")
print(df_1)
Ausgabe:
Initial DataFrame:
Column 1 Column 2 Column 3
1 85 55 23
2 87 54 95
3 90 56 65
4 89 66 45
DataFrame after changing Column 1:
Column 1 Column 2 Column 3
1 850 55 23
2 870 54 95
3 900 56 65
4 890 66 45
Die Funktion lambda
wird mit der Methode map()
nur auf Column 1
des DataFrame angewendet. Da eine einzelne Spalte ein Series
-Objekt ist, können wir die map()
-Methode mit einer Spalte des DataFrame verwenden. Wir weisen dann das zurückgegebene Series
-Objekt aus der map()
-Methode wieder der Column 1
des df_1
DataFrame zu. Auf diese Weise können wir nur die Werte einer bestimmten Spalte eines DataFrame ändern.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn