如何使用正则表达式语法从给定列中的文本中删除“省略号”? [复制]
Posted
技术标签:
【中文标题】如何使用正则表达式语法从给定列中的文本中删除“省略号”? [复制]【英文标题】:How to use regular expression syntax to remove "ellipsis" from text in a given column? [duplicate] 【发布时间】:2019-07-01 19:57:56 【问题描述】:我正在使用此代码,但它不会删除“省略号”:
Column Review 包含 1500 行文本
Df["Reviews"] = Df['Reviews'].apply(lambda x : " ".join(re.findall('[\w\.]+',x)))
示例文本将是:“经销商说它不向经销商偿还贷款或租金......那么,如果他们制造了有缺陷的汽车,而你在线帮助客户,为什么还要成为经销商”
【问题讨论】:
如果您想添加更多信息,请edit您的问题 试试这个 - ***.com/questions/7208861/… 或尝试在省略号前使用“\”并设置 regex = true。 【参考方案1】:您可以尝试以下任何一种方式-
与 REGEX
import pandas as pd
pd.set_option('max_colwidth', 400)
df = pd.DataFrame('Reviews':['dealer said it does not reimburse dealers for loaners or rentals... so why even be a dealership if they make faulty cars and you re on the line to help customers'])
df['Reviews'] = df['Reviews'].replace('\.+','.',regex=True)
print(df)
与 REGEX
import re
regex = r"[.]+"
test_str = "dealer said it does not reimburse dealers for loaners or rentals... so why even be a dealership if they make faulty cars and you re on the line to help customers"
subst = "."
result = re.sub(regex, subst, test_str, 0, re.MULTILINE | re.IGNORECASE)
if result:
print (result)
与 REGEX
import re
regex = r"(\W)\1+"
test_str = "dealer said it does not reimburse dealers for loaners or rentals... so why even be a dealership if they make faulty cars and you re on the line to help customers"
subst = "\\1"
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
if result:
print (result)
【讨论】:
有意思,我试试这个 @Saud 我用 pandas 添加了一个新答案,我敦促你尝试一下 请与熊猫分享答案,那会很有趣 @Saud 添加了pandas
的答案,再看看
是的,pandas 工作,谢谢【参考方案2】:
Series.str.replace 应该适用于简单的表达式:
df.Reviews.str.replace("...", "")
【讨论】:
不应该是 regex = True 吗? 它真的不适合我 我认为'\...'
是正确的模式,而@Sid29 .str.replace
默认为regex=True
替换功能根本不起作用【参考方案3】:
如果你想从每一行中删除这个特定的单词,那么你不需要使用 RegEx。您可以使用str.replace
,如下所示:How to strip a specific word from a string?
Df["Reviews"] = Df['Reviews'].apply(lambda x:x.replace("ellipsis",""))
【讨论】:
省略号是指“...”以上是关于如何使用正则表达式语法从给定列中的文本中删除“省略号”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章