Función Pandas Series.str.replace()

Pandas 常用函数Funciones comunes de Pandas


Series.str.replace()Es una función en Pandas que se utiliza para reemplazar contenido específico en cadenas.

En el proceso de procesamiento de datos, a menudo necesitamos realizar operaciones de reemplazo en el texto, como corregir texto erróneo, estandarizar formatos de datos, eliminar caracteres innecesarios, etc.replace()La función puede reemplazar de manera flexible el contenido especificado en cadenas y admite coincidencia con expresiones regulares.

Definición de la palabra:replaceSignifica 'reemplazar', es decir, sustituir el contenido antiguo por uno nuevo.


Sintaxis básica y parámetros

str.replace()Es el método de acceso a cadenas de Series, por lo que primero necesitas tener una Series que contenga cadenas, y luego mediante.strel accesor para invocarla.

Formato de sintaxis

Series.str.replace(pat, repl, regex=False)

Descripción de parámetros

Parámetro Tipo Requerido Descripción Valor predeterminado
pat str o regex Obligatorio El patrón a reemplazar, puede ser una cadena normal o una expresión regular (cuando regex=True). -
repl str o callable Obligatorio El contenido de reemplazo, puede ser una cadena o una función invocable (para reemplazo avanzado). -
regex bool Opcional Indica si el parámetro pat debe tratarse como expresión regular. El valor predeterminado es False. False

Descripción de la función

  • Valor de retorno: Devuelve una nueva Series con el contenido reemplazado.
  • Efecto: Reemplaza el contenido coincidente en cada elemento de cadena de la Series por contenido nuevo.
  • Nota: De forma predeterminada se usa coincidencia con cadenas normales; si se necesita coincidencia con expresiones regulares, debe configurarregex=True。

Ejemplos

Vamos a, a través de una serie de ejemplos de simples a complejos, dominar completamentestr.replace()su uso.

Ejemplo 1: Uso básico - Reemplazo simple de cadenas

Ejemplo

import pandas as pd

# Crear una Series que contenga texto
s = pd.Series(['apple', 'banana', 'apricot', 'pineapple'])

# Reemplazar 'ap' por 'XX'
result = s.str.replace('ap', 'XX')

print("Series original:")
print(s)
print("nResultado después del reemplazo:")
print(result)

Salida:

原始 Series:
0        apple
1       banana
2       apricot
3    pineapple
dtype: object

替换后的结果:
0       XXle
1       banana
2       XXricot
3    XXneXXple

Análisis del código:

  1. s.str.replace('ap', 'XX')Reemplaza todas las apariciones de 'ap' por 'XX'.
  2. De forma predeterminada, solo se reemplaza la primera coincidencia (si aparece varias veces en la cadena, solo se reemplaza la primera).
  3. Se pueden reemplazar todas las coincidencias añadiendo un indicador de expresión regular.

Ejemplo 2: Usar expresiones regulares para reemplazar todas las coincidencias

Cuando se necesita reemplazar todas las coincidencias, se puede usar una expresión regular.

Ejemplo

import pandas as pd

# Crear una Series que contenga texto
s = pd.Series(['apple', 'banana', 'apricot', 'pineapple'])

# Usar una expresión regular para reemplazar todos los 'ap' por 'XX'
result = s.str.replace('ap', 'XX', regex=True)

print("Series original:")
print(s)
print("nResultado después de reemplazar todos los 'ap':")
print(result)

Salida:

原始 Series:
0        apple
1       banana
2       apricot
3    pineapple
dtype: object

替换所有 'ap' 后的结果:
0       XXle
1       banana
2       XXricot
3    XXneXXple

Análisis del código:

  • Configurarregex=TrueDespués, usar una expresión regular para realizar la coincidencia.
  • En la expresión regular,'ap'coincide con todas las apariciones de 'ap' en la cadena.
  • 'pineapple' tiene dos 'ap', ambos son reemplazados por 'XX'.

Ejemplo 3: Reemplazar números y símbolos

replace()Puede usarse para limpiar datos, por ejemplo, eliminar números o símbolos especiales.

Ejemplo

import pandas as pd

# Crear una Series con contenido mixto
s = pd.Series(['phone: 123-456-7890', 'price: $99.99', 'date: 2024-01-01'])

# Eliminar todos los números
result_digits = s.str.replace(r'd', '', regex=True)

# Eliminar todos los caracteres no alfanuméricos (conservar espacios)
result_special = s.str.replace(r'[^a-zA-Z0-9s]', '', regex=True)

print("Series original:")
print(s)
print("nDespués de eliminar todos los números:")
print(result_digits)
print("nDespués de eliminar todos los caracteres especiales:")
print(result_special)

Salida:

原始 Series:
0    phone: 123-456-7890
1       price: $99.99
2       date: 2024-01-01
dtype: object

移除所有数字后:
phone: ---
price: $.$
date: ------

移除所有特殊字符后:
phone 1234567890
price 9999
date 20240101

Análisis del código:

  • r'd'Es una expresión regular que coincide con cualquier dígito.
  • r'[^a-zA-Z0-9s]'Coincide con todos los caracteres que no son alfanuméricos ni espacios.
  • Esta es una operación muy común en la limpieza de datos.

Ejemplo 4: Usar una función de devolución de llamada para reemplazar

replEl parámetro puede ser una función, para una lógica de reemplazo más compleja.

Ejemplo

import pandas as pd

# Crear una Series que contenga texto
s = pd.Series(['hello', 'world', 'ejemplo', 'python'])

# Usar una función de devolución de llamada para convertir a mayúsculas la cadena coincidente
result = s.str.replace(r'[aeiou]', lambda m: m.group(0).upper(), regex=True)

print("Series original:")
print(s)
print("nDespués de convertir las vocales a mayúsculas:")
print(result)

Salida:

原始 Series:
0       hello
1       world
2      ejemplo
3      python
dtype: object

将元音字母转为大写后:
0       hEllo
1       wOrld
2       example
3       pythOn

Análisis del código:

  • La función de devolución de llamada recibe un objeto de coincidencia; se puede usarm.group(0)para obtener el contenido coincidente.
  • Convierte las vocales (a, e, i, o, u) a mayúsculas.
  • Esta es una buena manera de implementar una lógica de reemplazo más compleja.

Ejemplo 5: Estandarizar el formato de datos

En proyectos reales,replace()se utiliza a menudo para estandarizar los formatos de datos.

Ejemplo

import pandas as pd

# Simular los nombres de país ingresados por el usuario (formato no uniforme)
countries = pd.Series(['USA', 'U.S.A.', 'U.S.A', 'usa', 'us', 'United States'])

# Reemplazar uniformemente por el nombre estándar
result = countries.replace({
    'USA': 'US',
    'U.S.A.': 'US',
    'U.S.A': 'US',
    'usa': 'US',
    'us': 'US',
    'United States': 'US'
})

print("Nombres de países originales:")
print(countries)
print("nResultado después de unificar:")
print(result)

Salida:

原始国家名称:
0           USA
1        U.S.A.
2         U.S.A
3           usa
4            us
5    United States
dtype:
object

统一后的结果:
0    US
1    US
2    US
3    US
4    0    US
dtype: object

Análisis del código:

  • Este ejemplo utiliza el método dereplace()Series (no str.replace).
  • Se puede pasar un diccionario para reemplazar múltiples valores de una vez.
  • Unifica las diferentes representaciones en un formato estándar.

Notas

  • De forma predeterminada (regex=False),patel parámetro se trata como una cadena normal; solo se reemplaza la primera coincidencia.
  • Configurarregex=TrueDespués, usar una expresión regular para la coincidencia; se pueden reemplazar todas las coincidencias.
  • Algunos caracteres especiales en la expresión regular (como.、*etc.) deben escaparse.
  • Si la Series contiene valores NaN,replace()se devolverá NaN.
  • La función devuelve una nueva Series y no modifica los datos originales.

Pandas 常用函数Funciones comunes de Pandas

Otras extensiones