Estoy ejecutando debajo del código para limpiar el texto

import pandas as pd

def not_regex(pattern):
        return r"((?!{}).)".format(pattern)
    
tmp = pd.DataFrame(['No one has a European accent either @',
                    'That the kid   reminds me of Kevin'])

tmp[0].str.replace(not_regex('(\\b[-/]\\b|[a-zA-Z0-9])'), ' ') 

Luego devuelve una advertencia

<ipython-input-8-ef8a43f91dbd>:9: FutureWarning: The default value of regex will change from True to False in a future version.
  tmp[0].str.replace(not_regex('(\\b[-/]\\b|[a-zA-Z0-9])'), ' ')

¿Podría explicar el motivo de esta advertencia?

1
LE Anh Dung 12 mar. 2021 a las 19:43

1 respuesta

La mejor respuesta

Consulte las notas de la versión 1.2.0 de Pandas:

El valor predeterminado de regex para Series.str.replace() cambiará de True a False en una versión futura. Además, las expresiones regulares de un solo carácter no se tratarán como cadenas literales cuando se establezca regex = True (GH24804)

Es decir, use expresiones regulares explícitamente ahora:

dframe['colname'] = dframe['colname'].str.replace(r'\D+', regex=True)
1
Ryszard Czech 12 mar. 2021 a las 22:09