Los valores dentro de un marco de datos u otros objetos de pandas se pueden reemplazar usando el método replace() en Pandas. En Python, podemos usar este método para la manipulación y limpieza de datos. Este tutorial le enseñará cómo podemos reemplazar valores o datos del dataframe dado usando la función str.replace() de Pandas. En el marco de datos, podemos reemplazar datos de cadenas e incluso expresiones regulares (regex) usando la función Pandas dataframe.str.replace(). Similar a la función replace() de python, el método str.replace() en pandas también funciona en Series.
str.reemplazar()
El método str.replace() se usa para sustituir una cadena o una expresión regular con un valor o datos de cadena. La función replace () puede sustituir cualquier cosa con cualquier otra cosa, también las cadenas y expresiones regulares. Eche un vistazo a la sintaxis de la función str.replace().
Sintaxis
pandas.Series.str.replace(pat,repl,n=-1,case=Ninguno,flags=0,regex=Ninguno)
Parámetros:
- palmadita: expresión regular compilada o str. Las expresiones regulares o las secuencias de caracteres se pueden usar como cadenas.
- reemplazar: llamable o str. Cadena de sustitución o invocable. El invocable debe devolver una cadena de reemplazo para que se use después de recibir el objeto de coincidencia de expresiones regulares.
- norte: Por defecto, establecido como -1, int. Reemplazos totales a realizar.
- caso: Ninguno por defecto, bool. Averigua si “reemplazar” distingue entre mayúsculas y minúsculas:
- Se distingue entre mayúsculas y minúsculas, si es verdadero.
- Para la insensibilidad a mayúsculas y minúsculas, establecer en False
- Si pat se especifica como una expresión regular compilada, no se puede establecer.
- banderas: 0 o ninguna marca por defecto, int. Indicadores en el módulo de expresiones regulares, como re.IGNORECASE. Si pat se especifica como una expresión regular compilada, no se puede establecer.
- expresiones regulares: Verdadero por defecto, bool. Identifica si una expresión regular está presente en el patrón pasado: si es True, el patrón pasado se considera una expresión regular. De lo contrario, el patrón se trata como una cadena literal.
Escenario 1: str.Replace() en DataFrame
Aplicaremos esta función en las columnas de Pandas DataFrame para reemplazar valores únicos/múltiples. Veremos varios ejemplos en este escenario.
Sintaxis:
Único – DataFrame_objeto[‘column’].str.replace(‘antiguo’, ‘nuevo’)
Múltiple- DataFrame_objeto[‘column’].reemplazar([old values…],[new values…])
Aquí, old es la cadena existente y new es la nueva cadena que reemplaza a la existente.
Ejemplo 1: reemplazar una sola cadena
En este ejemplo, tenemos un DataFrame llamado “registros” que contienen columnas “químicas”, “alfabeto” y “valencia”. Reemplace ‘hidrógeno’ con “Hidrógeno químico” en la columna química.
registros=pandasMarco de datos({‘químico’:[‘hydrogen’,’nitrogen’,’oxygen’,’hydrogen’,’sodium’],
‘alfabeto’:[‘HY’,’N’,’O’,’HY’,’NA’],
‘valencia’:[10,2,3,4,11]})
imprimir(registros)
# Reemplace ‘hidrógeno’ con “Hydrogen Chemical” en la columna de químicos.
Registros[‘chemical’]=registros[‘chemical’].calle.reemplazar(‘hidrógeno’,‘Químico de hidrógeno’)
imprimir()
imprimir(registros)
Producción:
0 hidrógeno HY 10
1 nitrógeno N 2
2 oxígeno O 3
3 hidrógeno HY 4
4 sodio NA 11
valencia del alfabeto químico
0 Hidrógeno químico HY 10
1 nitrógeno N 2
2 oxígeno O 3
3 Hidrógeno químico HY 4
4 sodio NA 11
Explicación
Hay dos cadenas con ‘hidrógeno’ en la columna química. Entonces, ambos fueron reemplazados por “Hydrogen Chemical”.
Ejemplo 2: reemplazar un solo carácter
En este ejemplo, tenemos un DataFrame llamado “registros” que contienen columnas “químicas” y “alfabeto”. Reemplace ‘O’ con “o” en la columna del alfabeto.
registros=pandasMarco de datos({‘químico’:[‘hydrogen’,‘nitrogen’,‘oxygen’,‘hydrogen’],
‘alfabeto’:[‘HY’,‘N’,‘O’,‘NO’]})
imprimir(registros)
# Reemplace ‘O’ con “o” en la columna del alfabeto.
registros[‘alphabet’]=registros[‘alphabet’].calle.reemplazar(‘O’,‘o’)
imprimir()
imprimir(registros)
Producción:
0 hidrógeno HY
1 nitrógeno N
2 oxígeno O
3 hidrógeno NO
alfabeto químico
0 hidrógeno HY
1 nitrógeno N
2 oxigeno o
3 hidrógeno No
Hay dos caracteres en la columna del alfabeto. Entonces, ambos fueron reemplazados por “O”.
Ejemplo 3: reemplazar varias cadenas
Reemplacemos ‘hidrógeno’ por ‘HIDRÓGENO’, ‘oxígeno’ por ‘OXY’ y ‘azufre’ por ‘S’ en la columna química
registros=pandasMarco de datos({‘químico’:[‘hydrogen’,‘nitrogen’,‘oxygen’,‘hydrogen’,‘sulphur’],
‘alfabeto’:[‘HY’,‘N’,‘O’,‘NO’,‘SUL’]})
imprimir(registros)
# Reemplazar múltiples valores a la vez.
registros[‘chemical’]=registros[‘chemical’].reemplazar([‘hydrogen’,‘oxygen’,‘sulphur’],[‘HYDROGEN’,‘OXY’,‘S’])
imprimir()
imprimir(registros)
Producción:
0 hidrógeno HY
1 nitrógeno N
2 oxígeno O
3 hidrógeno NO
4 azufre SUL
alfabeto químico
0 HIDRÓGENO HY
1 nitrógeno N
2 OXY O
3 HIDRÓGENO NO
4 S SUL
2 cadenas de “hidrógeno” se reemplazan por “HIDRÓGENO”, 1 “oxígeno” y “azufre” se reemplazan por “OXY” y “S”.
Ejemplo 4: Reemplazar múltiples cadenas usando el diccionario
Reemplacemos ‘hidrógeno’ con ‘ÁCIDO’ y ‘azufre’ con ‘BASE’ en la columna química
registros=pandasMarco de datos({‘químico’:[‘hydrogen’,‘nitrogen’,‘oxygen’,‘hydrogen’,‘sulphur’],
‘alfabeto’:[‘HY’,‘N’,‘O’,‘NO’,‘SUL’]})
imprimir(registros)
# Reemplazar múltiples valores a la vez.
registros[‘chemical’]=registros[‘chemical’].reemplazar({‘hidrógeno’:‘ÁCIDO’,‘azufre’:‘BASE’})
imprimir()
imprimir(registros)
Producción:
0 hidrógeno HY
1 nitrógeno N
2 oxígeno O
3 hidrógeno NO
4 azufre SUL
alfabeto químico
0 ÁCIDO HY
1 nitrógeno N
2 oxígeno O
3 NÚMERO DE ÁCIDO
4 BASE SUR
2 cadenas de “hidrógeno” se reemplazan por “ÁCIDO” y 1 “azufre” se reemplaza por “BASE”.
Escenario 2: str.Replace() en serie
Vamos a crear una serie de pandas y reemplazar las cadenas con nuevas cadenas con un patrón de expresión regular. Podemos especificar la subcadena que se debe reemplazar dentro del método re.compile() y esto se puede pasar dentro del método replace() como el primer parámetro y la nueva cadena como el segundo parámetro que reemplaza la subcadena.
Sintaxis:
Único – Series_object.str.replace(re.compile(“antiguo),”nuevo”)
Aquí, old es la cadena existente y new es la nueva cadena que reemplaza a la existente.
Ejemplo: Reemplazar una sola cadena
En este ejemplo, tenemos una Serie llamada “registro” que contiene 4 cadenas.
Reemplace la subcadena – “gen” con “AND”.
importar re
# Crea series de pandas con 4 cuerdas
registro=pandasSerie([‘hydrogen’,‘nitrogen’,‘HY’,‘N’])
# Reemplace la subcadena – “gen” con “AND”.
imprimir(registro.calle.reemplazar(re.compilar(“GEN”),“Y”))
imprimir()
# Reemplace la subcadena – “gen” con “AND” ignorando el caso.
imprimir(registro.calle.reemplazar(re.compilar(“GEN”,banderas=re.IGNORAR CASO),“Y”))
Producción:
1 nitrógeno
2 HY
3 norte
tipo de d: objeto
0 hidroY
1 nitroY
2 HY
3 norte
tipo de d: objeto
Explicación
- En el primer resultado, no ignoramos la distinción entre mayúsculas y minúsculas. Entonces, “gen” y “GEN” son diferentes. Como “GEN” no existe en la Serie, no se realiza ningún reemplazo.
- En la segunda salida, estamos ignorando la distinción entre mayúsculas y minúsculas al establecer “flags=re.IGNORECASE”. Entonces, “gen” y “GEN” son lo mismo. Se reemplaza por “Y”. Por lo tanto, las cadenas actualizadas son: “hydroAND” y “nitroAND”.
Conclusión
Te enseñamos a sustituir/reemplazar los valores de cadena en pandas. Hemos discutido la sintaxis del método str.replace() para comprender su funcionalidad. Implementamos algunos ejemplos en este tutorial para enseñarle cómo sustituir los valores de cadena con datos de cadena, reemplazar un carácter en particular, reemplazar una subcadena o secuencia de caracteres con los valores de cadena y reemplazar varias cadenas de la columna DataFrame usando str.replace( ) y funciones replace(). Además, cómo reemplazar cadenas de la Serie usando expresiones regulares.