Pandas Series.map

Suraj Joshi 17 Februar 2021
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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Pandas Series