python中的Lambda表达式赢得';不能给出正确的输出

python中的Lambda表达式赢得';不能给出正确的输出,python,Python,我正在处理一个机器学习问题,我正试图编写一个lambda函数来删除pandas列中的标点符号,不幸的是lamda表达式没有按预期工作 combi['tidy_tweet'] = combi['tidy_tweet'].apply(lambda x: x.replace("[^a-zA-Z#]", " ")) 上面的表达式使列保持不变,而我希望它删除标点符号 有人知道上面的lambda表达式有什么问题吗?如果需要用正则表达式替换,则需要导入re,并使用re.sub()而不是str.replace

我正在处理一个机器学习问题,我正试图编写一个lambda函数来删除pandas列中的标点符号,不幸的是lamda表达式没有按预期工作

combi['tidy_tweet'] = combi['tidy_tweet'].apply(lambda x: x.replace("[^a-zA-Z#]", " "))
上面的表达式使列保持不变,而我希望它删除标点符号


有人知道上面的lambda表达式有什么问题吗?

如果需要用正则表达式替换,则需要
导入re
,并使用
re.sub()
而不是
str.replace()


lambda函数中的
x
arg是一个纯字符串,它调用内置的
str.replace
方法,该方法不对正则表达式模式进行操作。
相反,您可以只使用
regex
flavor应用函数:

combi['tidy_tweet'] = combi['tidy_tweet'].replace(r'[^a-zA-Z#]', ' ', regex=True)

您正试图使用regex替换,但不幸的是,它不受支持。您需要使用
re
模块。这个问题在这里有答案。你能提供
tidy\u tweet
dataframe吗?
combi['tidy_tweet'] = combi['tidy_tweet'].replace(r'[^a-zA-Z#]', ' ', regex=True)