Tengo un marco de datos de pandas en el que necesito reemplazar una parte del valle con otro valor
por ejemplo. tengo
HF - Antartica HF - America HF - Asia de los cuales me gustaría reemplazar solo la parte HF - por lo tanto, el resultado sería
Hi Funny Antartica Hi Funny America Hi Funny Asia pd.replace() pero no funciona porque solo necesito reemplazar una parte de la cadena, en lugar de la cadena completa
Parece que necesitas Series.replace :
print (df) val 0 HF - Antartica 1 HF - America 2 HF - Asia print (df.val.replace({'HF -':'Hi'}, regex=True)) 0 Hi Antartica 1 Hi America 2 Hi Asia Name: val, dtype: object Solución similar con str.replace :
print (df.val.str.replace('HF -', 'Hi')) 0 Hi Antartica 1 Hi America 2 Hi Asia Name: val, dtype: objectPara agregar a la respuesta de @jezrael, debe incluir regex=True de lo contrario, coincidiría directamente. Además, aquí reemplaza los valores en todas las columnas del marco de datos. Si no tiene la intención de esto, puede filtrar a una columna y luego reemplazar. Para reemplazar todos los valores en el marco de datos, intente:
df.replace('HF', 'Hi Funny', regex=True)
También puede proporcionar una lista basada en patrones y valores de reemplazo. El conjunto completo de opciones se proporciona en la documentación aquí .
Entonces, si el marco de datos es:
>df = pd.DataFrame({'Column': ['HF - Antartica', 'HF - America', 'HF - Asia']}) >df.replace('HF', 'Hi Funny', regex=True)debe imprimir:
Column 0 Hi Funny - Antartica 1 Hi Funny - America 2 Hi Funny - AsiaMe gustaría compartir una cosa más que es muy importante, puede reemplazar el punto con espacio ". " con "." parada completa normal
df['label']=df.label.replace({"\. ": "."},regex=True)