Pandas: replace string with another string

I have the following data frame

    prod_type
0   responsive
1   responsive
2   respon
3   r
4   respon
5   r
6   responsive

I would like to replace respon, and ron responsive, so the final data frame

    prod_type
0   responsive
1   responsive
2   responsive
3   responsive
4   responsive
5   responsive
6   responsive

I tried the following, but this did not work:

df['prod_type'] = df['prod_type'].replace({'respon' : 'responsvie'}, regex=True)
df['prod_type'] = df['prod_type'].replace({'r' : 'responsive'}, regex=True)
+4
source share
3 answers

Solution with :replace 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

If you need to set all the values โ€‹โ€‹in a column to some string:

df['prod_type'] = 'responsive' 
+3
source

You do not need to pass regex=Truehere, as this will look for partial matches, since after exact matches you just pass the parameters as separate arguments:

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
+2
source

, df['prod_type'] :

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
+2
source

Source: https://habr.com/ru/post/1655247/


All Articles