我正在尝试格式化包含字母,特殊字符和数字的给定字符串。我的目标是删除字符串中除字母和空格以外的所有内容。我可以用看起来不太好的多行代码来做到这一点。您能帮我重新设置代码的格式,以便我可以在线进行多种格式设置,而不是下面的4行吗?
scholar['title_format'] = scholar['title'].map(lambda x: str(x)) #change the value to string
scholar['title_format'] = scholar['title_format'].map(lambda x: re.sub(r'[^a-zA-Z ]', '', x)) #remove any special characters
scholar['title_format'] = scholar['title_format'].map(lambda x: re.sub(r'[0-9]', '', x)) #remove any numbers
scholar['title_format'] = scholar['title_format'].map(lambda x: x.lower()) #change it to lower case
最佳答案
IIUC:
scholar['title_format'] = scholar['title'].astype(str).str.lower() \
.str.replace(r'[^a-z\s]*', '')
更新:
scholar['title_format'] = scholar['title'].astype(str).str.lower() \
.str.replace(r'[^a-z]*', '') \
.map(lambda x: ''.join(sorted(x)))