Funzione Pandas DataFrame DataFrame.replace()

Suraj Joshi 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.replace():
  2. Codici di esempio: sostituire i valori in DataFrame utilizzando pandas.DataFrame.replace()
  3. Codici di esempio: sostituire più valori in DataFrame utilizzando pandas.DataFrame.replace()
Funzione Pandas DataFrame DataFrame.replace()

pandas.DataFrame.replace() sostituisce i valori in DataFrame con altri valori, che possono essere stringa, regex, lista, dizionario, Series o un numero.

Sintassi di pandas.DataFrame.replace():

DataFrame.replace(,
                  to_replace=None,
                  value=None,
                  inplace=False,
                  limit=None,
                  regex=False,
                  method='pad')

Parametri

to_replace stringa, regex, lista, dizionario, serie, numerico o None. Valori in DataFrame che devono essere sostituiti
value scalare, dict, list, string, regex o None. Valore con cui sostituire qualsiasi valore corrispondente a_replace con
inplace Booleano. Se True modifica il chiamante DataFrame
limit Numero intero. Spazio di dimensioni massime per il riempimento in avanti o all’indietro
regex Booleano. Imposta regex su True se to_replace e/o value è un’espressione regolare
method Metodo utilizzato per la sostituzione

Ritorno

Restituisce un DataFrame sostituendo tutti i campi specificati con un value dato.

Codici di esempio: sostituire i valori in DataFrame utilizzando pandas.DataFrame.replace()

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Before Replacement")
print(df)  
replaced_df=df.replace(1, 5)
print("After Replacement")
print(replaced_df)

Produzione:

Before Replacement
   X  Y
0  1  4
1  2  1
2  3  8
After Replacement
   X  Y
0  5  4
1  2  5
2  3  8

Qui, 1 rappresenta il parametro to_replace e 5 rappresenta il parametro value nel metodo replace(). Quindi tutte le voci con valore 1 sono sostituite da 5 in df.

Codici di esempio: sostituire più valori in DataFrame utilizzando pandas.DataFrame.replace()

Sostituisci usando liste

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Before Replacement")
print(df)  
replaced_df=df.replace([1,2,3],[1,4,9])
print("After Replacement")
print(replaced_df)

Produzione:

Before Replacement
   X  Y
0  1  4
1  2  1
2  3  8
After Replacement
   X  Y
0  1  4
1  4  1
2  9  8

Qui, [1,2,3] rappresenta il parametro to_replace e [1,4,9] rappresenta il parametro value nel metodo replace(). Quindi la colonna [1,2,3] è sostituita da [1,4,9] in df.

Sostituisci usando dizionari

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [3, 1, 8]})
print("Before Replacement")
print(df)  
replaced_df=df.replace({1:10,3:30})
print("After Replacement")
print(replaced_df)

Produzione:

Before Replacement
   X  Y
0  1  3
1  2  1
2  3  8
After Replacement
    X   Y
0  10  30
1   2  10
2  30   8

Sostituisce tutti gli elementi con valore 1 con 10 e tutti gli elementi con valore 3 con 30.

Sostituisci usando Regex

import pandas as pd
df = pd.DataFrame({'X': ["zeppy", "amid", "amily"],
                   'Y': ["xar", "abc", "among"]})
print("Before Replacement")
print(df)  
df.replace(to_replace=r'^ami.$', value='song', regex=True,inplace=True)
print("After Replacement")
print(df)

Produzione:

Before Replacement
       X      Y
0  zeppy    xar
1   amid    abc
2  amily  among
After Replacement
       X      Y
0  zeppy    xar
1   song    abc
2  amily  among

Sostituisce tutti gli elementi con i primi tre caratteri come ami seguito da un qualsiasi carattere con song. Qui solo amid soddisfa la data regex e quindi solo amid è sostituito da song. Sebbene amily abbia anche i suoi primi tre caratteri ami, ma ci sono due personaggi dopo ami. Quindi, amily non soddisfa la regex data e quindi rimane la stessa e non viene sostituita. Se stai usando regex, assicurati che regex sia impostato su True e inplace=True modifichi l’originale DataFrame dopo aver chiamato il metodo replace() su di esso.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Pandas DataFrame