Pandas map Python
Questo tutorial spiega come possiamo sostituire i valori di una serie Pandas con un altro valore utilizzando il metodo Series.map()
.
import pandas as pd
my_series = pd.Series([85, 87, 90, 89], index=["1", "2", "3", "4"])
print(my_series, "\n")
Produzione:
1 85
2 87
3 90
4 89
dtype: int64
Useremo la serie my_series
mostrata nell’esempio sopra per spiegare il funzionamento del metodo map()
in Pandas.
pandas.Series.map()
Sintassi
Series.map(arg, na_action=None)
Restituisce un oggetto Series
sostituendo i valori nell’oggetto Series
chiamante in base al parametro arg
. L’argomento arg
può essere un oggetto funzione
, dizionario
o Series
che determina quali sono i nuovi valori dell’oggetto Series
.
Il parametro na_action
può prendere None
o 'ignore'
come suo valore. Il valore 'ignore'
di na_action
indica di ignorare i valori NaN
nella Series
e non fare nulla per loro.
Esempio: usa il metodo map()
per una serie di pandas
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")
Produzione:
Initial Series:
1 85
2 87
3 90
4 89
dtype: int64
Altered Series:
1 80
2 80
3 90
4 80
dtype: int64
Sostituisce gli elementi di my_series
a seconda dei valori specificati nel dizionario passati come argomento al metodo map()
.
Possiamo anche usare le funzioni per cambiare i valori della serie Pandas usando il metodo map()
.
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")
Produzione:
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
Prende ogni elemento di my_series
e aggiunge .00
alla fine di ogni elemento in my_series
.
Esempio: usa il metodo map()
per modificare una particolare colonna di un DataFrame
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)
Produzione:
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
Applicherà la funzione lambda
solo alla Column 1
del DataFrame utilizzando il metodo map()
. Poiché la singola colonna è un oggetto Series
, possiamo usare il metodo map()
con una colonna di DataFrame. Quindi assegniamo l’oggetto Series
restituito dal metodo map()
alla Column 1
del DataFrame df_1
. In questo modo, possiamo modificare i valori della particolare colonna solo di un DataFrame.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn