Python 使用正则表达式进行数据清理
我有几个这样的正则表达式Python 使用正则表达式进行数据清理,python,regex,pandas,data-cleaning,Python,Regex,Pandas,Data Cleaning,我有几个这样的正则表达式 Data['SUMMARY']=Data['SUMMARY'].str.replace(r'([^\w])',' ') Data['SUMMARY']=Data['SUMMARY'].str.replace(r'x{2,}',' ') Data['SUMMARY']=Data['SUMMARY'].str.replace(r'_+',' ') Data['SUMMARY']=Data['SUMMARY'].str.replace(r'\d+',' ') Data['SU
Data['SUMMARY']=Data['SUMMARY'].str.replace(r'([^\w])',' ')
Data['SUMMARY']=Data['SUMMARY'].str.replace(r'x{2,}',' ')
Data['SUMMARY']=Data['SUMMARY'].str.replace(r'_+',' ')
Data['SUMMARY']=Data['SUMMARY'].str.replace(r'\d+',' ')
Data['SUMMARY']=Data['SUMMARY'].str.replace(r'\s{2,}',' ')
我想将所有标点符号、XXXXXXXX、所有数字、所有非字母数字替换为空字符串'
。如何将其合并为一个替换regexp?因此您希望删除(根据您的问题)
X{2,}
df = pd.DataFrame({'SUMMARY' : ['hello, world!', 'XXXXX test', '123four, five:; six...']})
df
SUMMARY
0 hello, world!
1 XXXXX test
2 123four, five:; six...
df.SUMMARY.str.replace(r'[^a-zA-Z\s]+|X{2,}', '')
0 hello world
1 test
2 four five six
Name: SUMMARY, dtype: object
如果列中有两个或更多空格,则必须单独调用并替换它们
df.SUMMARY = df.SUMMARY.str.replace(r'[^a-zA-Z\s]+|X{2,}', '')\
.str.replace(r'\s{2,}', ' ')
因此,您希望删除(基于您的问题)
X{2,}
df = pd.DataFrame({'SUMMARY' : ['hello, world!', 'XXXXX test', '123four, five:; six...']})
df
SUMMARY
0 hello, world!
1 XXXXX test
2 123four, five:; six...
df.SUMMARY.str.replace(r'[^a-zA-Z\s]+|X{2,}', '')
0 hello world
1 test
2 four five six
Name: SUMMARY, dtype: object
如果列中有两个或更多空格,则必须单独调用并替换它们
df.SUMMARY = df.SUMMARY.str.replace(r'[^a-zA-Z\s]+|X{2,}', '')\
.str.replace(r'\s{2,}', ' ')
如果要替换
x
的两个或多个小写和大写2次
,并且如果还要用空字符串替换空格(其他空白字符):
(?i)([^a-z]+|X{2,})
如果要保留空白字符,如果要替换2代码
(?i)([^a-z\s]+|X{2,})
如果只想删除2X
或更多的大写字母链,并保留X
的小写字母链:
([^a-zA-Z\s]+|X{2,})
如果要替换
x
的两个或多个小写和大写2次
,并且如果还要用空字符串替换空格(其他空白字符):
(?i)([^a-z]+|X{2,})
如果要保留空白字符,如果要替换2代码
(?i)([^a-z\s]+|X{2,})
如果只想删除2X
或更多的大写字母链,并保留X
的小写字母链:
([^a-zA-Z\s]+|X{2,})
Data['SUMMARY'].str.replace('[^a-zA-Z]+|X{2,}','')
?您还需要删除空格吗?Data['SUMMARY'].str.replace('[^a-zA-Z]+|X{2,}','')
?您还需要删除空格吗?