pandas: reemplazar cadena con otra cadena

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