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.