Tengo el siguiente dataframe
prod_type 0 responsive 1 responsive 2 respon 3 r 4 respon 5 r 6 responsive
Me gustaría reemplazar respon
y r
con responsive
, por lo que el dataframe final es
prod_type 0 responsive 1 responsive 2 responsive 3 responsive 4 responsive 5 responsive 6 responsive
Intenté lo siguiente pero no funcionó:
df['prod_type'] = df['prod_type'].replace({'respon' : 'responsvie'}, regex=True) df['prod_type'] = df['prod_type'].replace({'r' : 'responsive'}, regex=True)
Solución con replace
por dictionary
:
df['prod_type'] = df['prod_type'].replace({'respon':'responsive', 'r':'responsive'}) print (df) prod_type 0 responsive 1 responsive 2 responsive 3 responsive 4 responsive 5 responsive 6 responsive
Si es necesario establecer todos los valores en la columna a alguna string
:
df['prod_type'] = 'responsive'
No necesita pasar regex=True
aquí, ya que esto buscará coincidencias parciales, ya que está buscando coincidencias exactas, solo pase los parámetros como argumentos separados:
In [7]: df['prod_type'] = df['prod_type'].replace('respon' ,'responsvie') df['prod_type'] = df['prod_type'].replace('r', 'responsive') df Out[7]: prod_type 0 responsive 1 responsive 2 responsvie 3 responsive 4 responsvie 5 responsive 6 responsive
Otra solución en caso de que todos los elementos de df['prod_type']
sean los mismos:
df['prod_type'] = ['responsive' for item in df['prod_type']] In[0]: df Out[0]: prod_type 0 responsive 1 responsive 2 responsive 3 responsive 4 responsive 5 responsive 6 responsive