regex 在Pandas中用空格替换多个子字符串

xt0899hw  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(107)

我有一种情况,我想用空格替换字符串的一部分。例如,我的列看起来像这样:

user_comment
it was a good day but nothing in particular happened
nothing specific happening today
no comments. all ok
not much happening really, it will be fine

我想要的结果是

user_comment_clean
it was a good day but happened
happening today
all ok
it will be fine

本质上,我想删除上面显示的字符串的一部分,如“没有特别的”,没有具体的”,“没有评论”和“没有太多发生真的”
我使用下面的代码来实现这一点:

def remove_no_comments(text):
   text = re.sub(r"^nothing in particular", ' ', text)
   text = re.sub(r"^nothing specific", ' ', text)
   text = re.sub(r"^no comment", ' ', text)
   text = re.sub(r"^not much happening really", ' ', text)
   text = text.lower()
   return text
df['user_comments_clean] = df['user_comments_clean].astype(str).apply(remove_no_comments)

但是在使用这个的时候,它把我的其他用户输入变成了nan,我真的不知道我在这里做错了什么。有什么可能的解决方案吗?

wsxa1bj1

wsxa1bj11#

您可以将str.replace()与regex交替使用:

terms = ["nothing in particular", "nothing specific", "no comment", "not much happening really"]
regex = r'^(?:' + r'|'.join(terms) + r')\b\s*'
df["user_comment_clean"] = df["user_comment"].str.replace(regex, '', regex=True)

相关问题