Pandas DataFrame DataFrame.replace() Função

Suraj Joshi 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.replace():
  2. Códigos de exemplo: Substitui valores em DataFrame utilizando pandas.DataFrame.replace()
  3. Códigos de exemplo: Substituir vários valores no DataFrame utilizando pandas.DataFrame.replace()
Pandas DataFrame DataFrame.replace() Função

pandas.DataFrame.replace() substitui os valores em DataFrame por outros valores, que podem ser string, regex, lista, dicionário, Series, ou um número.

Sintaxe de pandas.DataFrame.replace():

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

Parâmetros

to_replace string, regex, lista, dicionário, série, numérica, ou None. Valores em DataFrame que precisam de ser substituídos
value escalar, ditado, lista, cordel, regex, ou Nenhum. Valor para substituir quaisquer valores correspondentes a_substituir por
inplace Booleano. Se True modificar o autor da chamada DataFrame.
limit Inteiro. Tamanho máximo a preencher para a frente ou para trás
regex Booleano. Definir regex para True se to_replace e/ou value for uma regex
method Método utilizado para substituição

Devolver

Retorna um DataFrame substituindo todos os campos especificados por um dado value.

Códigos de exemplo: Substitui valores em DataFrame utilizando 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)

Resultado:

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

Aqui, 1 representa o parâmetro to_replace e 5 representa o parâmetro value no método replace(). Assim, todas as entradas com o valor 1 são substituídas por 5 no parâmetro df.

Códigos de exemplo: Substituir vários valores no DataFrame utilizando pandas.DataFrame.replace()

Substituir Listas de Utilização

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)

Resultado:

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

Aqui, [1,2,3] representa o parâmetro to_replace e [1,4,9] representa o parâmetro value no método replace(). Assim, a coluna [1,2,3] é substituída por [1,4,9] no df.

Substituir Utilizando Dicionários

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)

Resultado:

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

Substitui todos os elementos com o valor 1 por 10 e todos os elementos com o valor 3 por 30.

Substitui utilizando 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)

Resultado:

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

Substitui todos os elementos com os três primeiros caracteres como ami seguidos de qualquer caracter com song. Aqui apenas a amid satisfaz dada a regex e por isso apenas a amid é substituída por song. Embora amily também tenha os seus três primeiros caracteres como ami mas há dois caracteres depois de ami. Assim, amily não satisfaz o regex dado e, portanto, permanece o mesmo e não é substituído. Se estiver a utilizar regex, certifique-se de que regex está definido para True e inplace=True modifica o DataFrame original depois de chamar replace() metodo nele.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Pandas DataFrame