Я пытаюсь извлечь 1-n строк, разделенных символом новой строки, которые находятся между "началом" (SOMEWORD в примере) и словом "стоп" (SOME STOP WORD в примере) из кадра данных pandas через str.extractметод, но он терпит неудачу, и результат просто NaN.Примеры приведены ниже.
Я пытался построить регулярное выражение с помощью regex101.com и там оно работает, и даже когда я копирую автоматически сгенерированный пример кода из regex101.com в мой блокнот jupyter, он извлекает строкикак я и ожидал.
Пример кода с функцией pandas str.extract:
testInput = pd.DataFrame({'text': ['\nSOMEWORD\n---------- \nFirstline with some text\nSecondline with some text\nThirdline
with some text\nSOME STOP WORD\n-------------------\n']})
pattern = r'(?<=\nSOMEWORD\n----------\n)(\w.+?(?=\nSOME STOP WORD))'
test = testInput.iloc[0].str.extract(pattern)
test
, который выводит:
text NaN
Name: 0, dtype: object
Пример кода с regex101.com (iВключите только ссылку, чтобы сообщение не было длинным. На сайте вы также можете скопировать автоматически сгенерированный код, который работает и извлекает только строки между начальным и конечным словами): https://regex101.com/r/JM6Sgc/1
Поэтому мои 2 вопроса: