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 por favor explicar el motivo de esta advertencia?
Consulte las notas de la versión de Pandas 1.2.0 :
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 establece regex=True ( GH24804 ).
Es decir, use expresiones regulares explícitamente ahora:
dframe['colname'] = dframe['colname'].str.replace(r'\D+', regex=True)
tengo como
df.Experience.head(5)
0 24 years experience 1 12 years experience 2 9 years experience 3 12 years experience 4 20 years experience Name: Experience, dtype: object
yo uso como
df['Experience']=df['Experience'].str.replace(r'\D+','', regex=True).astype(int)
me gusta
df.Experience.head(5)
0 24 1 12 2 9 3 12 4 20 Name: Experience, dtype: int64