replace string in pandas dataframe

12,593

Solution 1

A dataframe in pandas is composed of columns which are series - Panda docs link

I'm going to use regex, because it's useful and everyone needs practice, myself included! Panda docs for text manipulation

Note the str.replace. The regex string you want is this (it worked for me): '.*@+.*' which says "any character (.) zero or more times (*), followed by an @ 1 or more times (+) followed by any character (.) zero or more times (*)

df['column'] = df['column'].str.replace('.*@+.*', 'replacement')

Should work, where 'replacement' is whatever string you want to put in.

Solution 2

Assuming you called your dataframe df, you can do:

pd.DataFrame(map(lambda col: map(lambda x: 'anotherString' if '@' in x else x, df[col]), df.columns)).transpose()

Solution 3

My suggestion:

df['col'] = ['new string' if '@' in x else x for x in df['col']]

not sure which is faster.

Share:
12,593
DJK
Author by

DJK

"Success consists of going from failure to failure without loss of enthusiasm." - Winston Churchill Only here to practice and learn from interesting problems

Updated on June 25, 2022

Comments

  • DJK
    DJK almost 2 years

    I have a dataframe with multiple columns. I want to look at one column and if any of the strings in the column contain @, I want to replace them with another string. How would I go about doing this?