Pandas Serie Serie.map() Funktion
-
Syntax von
pandas.series.map() -
Beispiel-Codes:
Series.map() -
Beispiel-Codes:
Series.map()zur Übergabe eines Dictionaries als Parameterarg -
Beispiel-Codes:
Series.map()zur Übergabe einer Funktion als Parameterarg -
Beispielcodes:
Series.map()zur Anwendung auf einen DataFrame
Die Python Pandas Series.map() Funktion ersetzt die Werte einer Series. Die ersetzten Werte können von einer Series, einem Dictionary oder einer Funktion abgeleitet werden. Diese Funktion funktioniert nur für eine Series. Wenn wir diese Funktion auf einen DataFrame anwenden, erzeugt sie einen AttributeError.
Syntax von pandas.series.map()
Series.map(arg, na_action=None)
Parameter
arg |
Es ist eine Funktion, ein Dictionary oder eine Series. Die zu ersetzenden Werte werden von dieser Funktion, dem Dictionary oder der Series abgeleitet. |
na_action |
Dieser Parameter akzeptiert zwei Werte: None und ignore. Sein Standardwert ist None. Wenn sein Wert ignore ist, dann bildet er die abgeleiteten Werte nicht auf NaN-Werte ab. Er ignoriert NaN-Werte. |
Zurück
Es gibt eine Series mit dem gleichen Index wie der Aufrufer zurück.
Beispiel-Codes: Series.map()
Wir werden eine Series erzeugen, die die NaN-Werte enthält, um die Ausgabe nach der Übergabe des Parameters na_action zu überprüfen.
import pandas as pd
import numpy as np
series = pd.Series(['Rose',
'Lili',
'Tulip',
np.NaN,
'Orchid',
'Hibiscus',
'Jasmine',
'Daffodil',
np.NaN ,
'SunFlower',
'Daisy'])
print(series)
Das Beispiel Series ist,
0 Rose
1 Lili
2 Tulip
3 NaN
4 Orchid
5 Hibiscus
6 Jasmine
7 Daffodil
8 NaN
9 SunFlower
10 Daisy
dtype: object
Wir benutzen NumPy, um NaN-Werte zu erzeugen.
Der Parameter arg ist ein obligatorischer Parameter. Wenn er nicht übergeben wird, erzeugt die Funktion einen TypeError. Zuerst übergeben wir eine Serie als Parameter arg.
Um zwei Serien abzubilden, sollte die letzte Spalte der ersten Serie gleich dem Index der zweiten Serie sein.
import pandas as pd
import numpy as np
first_series = pd.Series(
[
"Rose",
"Lili",
"Tulip",
np.NaN,
"Orchid",
"Hibiscus",
"Jasmine",
"Daffodil",
np.NaN,
"SunFlower",
"Daisy",
]
)
second_series = pd.Series(
[23, 34, 67, 90, 21, 45, 29, 70, 56],
index=[
"Rose",
"Lili",
"Tulip",
"Orchid",
"Hibiscus",
"Jasmine",
"Daffodil",
"SunFlower",
"Daisy",
],
)
series1 = first_series.map(second_series)
print(series1)
Ausgabe:
0 23.0
1 34.0
2 67.0
3 NaN
4 90.0
5 21.0
6 45.0
7 29.0
8 NaN
9 70.0
10 56.0
dtype: float64
Beachten Sie, dass die Funktion die Werte nach dem Vergleich der beiden Series ersetzt hat.
Beispiel-Codes: Series.map() zur Übergabe eines Dictionaries als Parameter arg
import pandas as pd
import numpy as np
series = pd.Series(
[
"Rose",
"Lili",
"Tulip",
np.NaN,
"Orchid",
"Hibiscus",
"Jasmine",
"Daffodil",
np.NaN,
"SunFlower",
"Daisy",
]
)
dictionary = {
"Rose": "One",
"Lili": "Two",
"Orchid": "Three",
"Jasmine": "Four",
"Daisy": "Five",
}
series1 = series.map(dictionary)
print(series1)
Ausgabe:
0 One
1 Two
2 NaN
3 NaN
4 Three
5 NaN
6 Four
7 NaN
8 NaN
9 NaN
10 Five
dtype: object
Die Werte in der Series, die nicht im Dictionary stehen, werden durch einen NaN-Wert ersetzt.
Beispiel-Codes: Series.map() zur Übergabe einer Funktion als Parameter arg
Nun werden wir eine Funktion als Parameter übergeben.
import pandas as pd
import numpy as np
series = pd.Series(
[
"Rose",
"Lili",
"Tulip",
np.NaN,
"Orchid",
"Hibiscus",
"Jasmine",
"Daffodil",
np.NaN,
"SunFlower",
"Daisy",
]
)
series1 = series.map("The name of the flower is {}.".format)
print(series1)
Ausgabe:
0 The name of the flower is Rose.
1 The name of the flower is Lili.
2 The name of the flower is Tulip.
3 The name of the flower is nan.
4 The name of the flower is Orchid.
5 The name of the flower is Hibiscus.
6 The name of the flower is Jasmine.
7 The name of the flower is Daffodil.
8 The name of the flower is nan.
9 The name of the flower is SunFlower.
10 The name of the flower is Daisy.
dtype: object
Hier haben wir die Funktion string.format() als Parameter übergeben. Beachten Sie, dass die Funktion auch auf die NaN-Werte angewendet wurde. Wenn wir diese Funktion nicht auf die NaN-Werte anwenden wollen, werden wir den Wert ignore an den Parameter na_action übergeben.
import pandas as pd
import numpy as np
series = pd.Series(
[
"Rose",
"Lili",
"Tulip",
np.NaN,
"Orchid",
"Hibiscus",
"Jasmine",
"Daffodil",
np.NaN,
"SunFlower",
"Daisy",
]
)
series1 = series.map("The name of the flower is {}.".format, na_action="ignore")
print(series1)
Ausgabe:
0 The name of the flower is Rose.
1 The name of the flower is Lili.
2 The name of the flower is Tulip.
3 NaN
4 The name of the flower is Orchid.
5 The name of the flower is Hibiscus.
6 The name of the flower is Jasmine.
7 The name of the flower is Daffodil.
8 NaN
9 The name of the flower is SunFlower.
10 The name of the flower is Daisy.
dtype: object
Der obige Beispielcode hat die NaN-Werte ignoriert.
Beispielcodes: Series.map() zur Anwendung auf einen DataFrame
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.map("The flower name is {}.".format)
print(dataframe1)
Ausgabe:
AttributeError: 'DataFrame' object has no attribute 'map'
Die Funktion hat den AttributeError erzeugt.