У меня есть функция с именем postprocess
, которая применяется при условии l oop, чтобы найти для -
и alphabets
для каждой строки кадра данных. postprocess
выглядит следующим образом:
def postprocess(description, start_index, end_index):
if (start_index > 0) & (start_index < len(description)):
while bool(re.match(r"\w|\'|-", description[start_index - 1])) & bool(
re.match(r"\w|\'|-", description[start_index])
):
start_index = start_index - 1
if new_start == 0:
break
description = description[new_start:new_end]
return description
Например, description
равно credit payment velvet-burger
, start_index
равно 7 и end_index
равно 12. Итак, description[start_index]
будет b
, что b
в burger
будет выполняться через некоторое время l oop путем отслеживания в обратном направлении, чтобы вернуть целевую подстроку, которую мы хотим видеть, потому что burger
не завершена, так как нам нужно слово velvet-
. После запуска postprocess
мы получим velvet-burger
. Полный код выглядит следующим образом:
df["target_substring"] = df.apply(lambda x: postprocess(
x["description"], x["start_index"], x["end_index"]+1),
axis=1)
Есть ли лучший способ написать этот код?