Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace all occurrences of a string in a pandas dataframe (Python)

I have a pandas dataframe with about 20 columns.

It is possible to replace all occurrences of a string (here a newline) by manually writing all column names:

df['columnname1'] = df['columnname1'].str.replace("\n","<br>") df['columnname2'] = df['columnname2'].str.replace("\n","<br>") df['columnname3'] = df['columnname3'].str.replace("\n","<br>") ... df['columnname20'] = df['columnname20'].str.replace("\n","<br>") 

This unfortunately does not work:

df = df.replace("\n","<br>") 

Is there any other, more elegant solution?

like image 887
nauti Avatar asked Sep 06 '14 09:09

nauti


1 Answers

You can use replace and pass the strings to find/replace as dictionary keys/items:

df.replace({'\n': '<br>'}, regex=True) 

For example:

>>> df = pd.DataFrame({'a': ['1\n', '2\n', '3'], 'b': ['4\n', '5', '6\n']}) >>> df    a    b 0  1\n  4\n 1  2\n  5 2  3    6\n  >>> df.replace({'\n': '<br>'}, regex=True)    a      b 0  1<br>  4<br> 1  2<br>  5 2  3      6<br> 
like image 150
Alex Riley Avatar answered Sep 20 '22 14:09

Alex Riley