我正在尝试格式化包含字母,特殊字符和数字的给定字符串。我的目标是删除字符串中除字母和空格以外的所有内容。我可以用看起来不太好的多行代码来做到这一点。您能帮我重新设置代码的格式,以便我可以在线进行多种格式设置,而不是下面的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)))

10-08 19:43