10

I would like to remove all instance of the string in col 'B' from col 'A', like so:

col A                 col B    col C
1999 toyota camry     camry    1999 toyota 
2003 nissan pulsar    pulsar   20013 nissan

How would I do this using pandas? If it was a fixed value (non-dependent on another column), I would use:

df['col C'] = df['col A'].str.replace('value-to-replace','')

2 Answers 2

13

Given a DataFrame of:

df = pd.DataFrame(
    {
        'A': ['1999 toyota camry', '2003 nissan pulsar'],
        'B': ['camry', 'pulsar']
    }
)

You can df.apply over the row axis and perform the replacement:

df['C'] = df.apply(lambda L: L.A.replace(L.B, ''), axis=1)

This'll give you:

                    A       B             C
0   1999 toyota camry   camry  1999 toyota 
1  2003 nissan pulsar  pulsar  2003 nissan 
Sign up to request clarification or add additional context in comments.

Comments

1

Suppose you have a dataframe:

df

               col A    col B
0   1999 toyota camry   camry
1   2003 nissan pulsar  pulsar

Then you may proceed as follows:

df['col C'] = [el[0].replace(el[1],'') for el in zip(df['col A'],df['col B'])]
df

                col A   col B         col C
0   1999 toyota camry   camry   1999 toyota
1   2003 nissan pulsar  pulsar  2003 nissan

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.