У меня есть pandas столбец строк данных и список подстрок (фраз). То, что я пытаюсь сделать, это перебрать все строки и для каждой строки построить новый столбец, который будет содержать только подстроки (фразы), которые существуют в этой конкретной строке (на основе существующего списка подстрок ). И я не могу найти оптимальный способ сделать это, чтобы избежать ожидания целую вечность.
Пример кода для функции, которую я создал, которая выполняется на одной строке:
def myfunc(text,skills):
res=[]
for skill in skills:
skill2=" "+str(skill)+" "
if skill2 in text:
res.append(skill)
return res
k=myfunc("This is a test text containing .niet network as well as 2008 r2 to find out f the f# skills",['.niet','2008 r2','net','f','f#'])
print(k)
вывод здесь должен быть:
['.niet', '2008 r2', 'f', 'f#']
Я создал вышеуказанную функцию, чтобы я мог вызывать ее внутри функции pandas .dataframe.apply (), чтобы выполнить итерацию для всех строковых записей. столбца dataframe "description" ...
пример кода:
dev['sample'] = dev['description'].apply(lambda x: myfunc(x,myskillslist=['.niet','2008 r2','net','f','f#']))
x представляет каждый документ / строку, в то время как myskillslist - это список подстрок (который является предопределенным списком, который не ' т))
есть идеи? Есть ли лучший способ сделать это? Я много искал и не смог создать более быстрое решение.