Pandas Serie Serie.map() Funktion

Minahil Noor 30 Januar 2023 14 November 2020 Pandas Pandas Series
  1. Syntax von pandas.series.map()
  2. Beispiel-Codes: Series.map()
  3. Beispiel-Codes: Series.map() zur Übergabe eines Dictionaries als Parameter arg
  4. Beispiel-Codes: Series.map() zur Übergabe einer Funktion als Parameter arg
  5. Beispielcodes: Series.map() zur Anwendung auf einen DataFrame
Pandas Serie Serie.map() Funktion

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.

Verwandter Artikel - Pandas Series

  • Pandas Series.head() Funktion
  • Pandas Series.to_frame() Funktion
  • Pandas Series.tolist() Funktion
  • Pandas Serie Serie.nunique() Funktion
  • Pandas Series Series.unique() Funktion