replace part of the string in pandas data frame

Question:

I have pandas data frame in which I need to replace one part of the vale with another value

for Example. I have

HF - Antartica
HF - America
HF - Asia

out of which I’d like to replace ony the HF - part
thus the result would be

Hi Funny Antartica
Hi Funny America
Hi Funny Asia

I have tried pd.replace() but it doesnt work as I need only one part of the string replaced, rather than the entire string

Asked By: Mr.Riply

||

Answers:

It seems you need 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

Similar solution with str.replace:

print (df.val.str.replace('HF -', 'Hi'))
0    Hi Antartica
1      Hi America
2         Hi Asia
Name: val, dtype: object
Answered By: jezrael

To add to @jezrael’s answer, you need to include regex=True otherwise it would match directly. Also, here it replaces the values across all columns in the data frame. If you don’t intend this, you could filter to a column and then replace. For replacing across all values in the data frame, try:

df.replace('HF', 'Hi Funny', regex=True)

You could also provide a list based patterns and replacement values. The complete set of options are provided in the documentation here.

So if the data frame is:

>df = pd.DataFrame({'Column': ['HF - Antartica', 'HF - America', 'HF - Asia']})
>df.replace('HF', 'Hi Funny', regex=True)

should print:

                 Column
0  Hi Funny - Antartica
1    Hi Funny - America
2       Hi Funny - Asia
Answered By: kuriouscoder

I would like to share one more thing that is very much important, you can replace full stop with space “. ” with “.” normal full stop

df['label']=df.label.replace({". ": "."},regex=True)
Answered By: Sarmad Mahar
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.