简体   繁体   中英

replacing special characters in string Python

I'm trying to replace special characters in a data frame with unaccented or different ones.

I can replace one with

df['col_name'] = df.col_name.str.replace('?','j') 

this turned the '?' to 'j' - but - I can't seem to figure out how to change more than one..

I have a list of special characters that I want to change. I've tried using a dictionary but it doesn't seem to work

the_reps = {'?','j'}

df1 = df.replace(the_reps, regex = True)

this gave me the error nothing to replace at position 0

EDIT:

this is what worked - although it is probably not that pretty:

df[col]=df.col.str.replace('old char','new char')
df[col]=df.col.str.replace('old char','new char')
df[col]=df.col.str.replace('old char','new char')
df[col]=df.col.str.replace('old char','new char')...

for each one..

you can use Series.replace with a dictionary

#d = { 'actual character ':'replacement ',...}

df.columns = df.columns.to_series().replace(d, regex=True)
import re
s=re.sub("[_list of special characters_]","",_your string goes here_)
print(s)

An example for this..

str="Hello$@& Python3$"
import re
s=re.sub("[$@&]","",str)
print (s)
#Output:Hello Python3

Explanation goes here..

s=re.sub("[$@&]","",s)
  • Pattern to be replaced → “[$@&]”
  • [] used to indicate a set of characters
  • [$@&] → will match either $ or @ or &
  • The replacement string is given as an empty string
  • If these characters are found in the string, they'll be replaced with an empty string

Try This:

import re
my_str = "hello Fayzan-Bhatti Ho~!w"
my_new_string = re.sub('[^a-zA-Z0-9 \n\.]', '', my_str)
print my_new_string

Output: hello FayzanBhatti How

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM