df是非结构化的,没有列和行标题。每列都有字符串,其中有一组需要删除的模式,该模式如下所述:
作为字符串输入到非结构化df的一列:
我将被阅读===开始===我将被删除===停止===我必须被再次阅读===开始===再次删除我===停止===继续阅读
需要输出:
我要被阅读我要再被阅读继续阅读
在这里,每当字符串“===start===”出现时,我必须将其从“===stop==”中删除。df有数千个条目。使用regex最有效的方法是什么?你知道吗
下面的代码在一列上工作,但需要很长时间才能完成。你知道吗
有没有一个使用regex的解决方案是最有效/时间复杂度最低的?你知道吗
df = pd.read_excel("sample_excel.xlsx", header=None)
def removeString(df):
inf = df[0][1]
infcopy = ''
bol = False
start = '*start*'
end = '*stop*'
inf.replace('* start *',start) #in case black space between start
inf.replace('* stop *',end) #in case black space between start
for i in range(len(inf)):
if inf[i] == "*" and inf[i:i+len(start)] == start:
bol = True
if inf[i] == '*' and inf[i+1-len(end):i+1] == end:
bol = False
continue
if bol == False:
infcopy += inf[i]
df[0][1] = infcopy
我想它可能看起来像这样。你知道吗
例如
输出:
然后
输出:
这里定义的regex模式将在找到以“start”开头、以“stop”结尾的字符串的匹配项并将其作为输出时删除所有内容
相关问题 更多 >
编程相关推荐