Я пытаюсь извлечь 5 строк до и после определенной комбинации ключевых слов из нескольких заявок SEC 10-K, а затем экспортировать эти данные в Excel, чтобы затем я мог обработать их вручную.
К сожалению, мне приходится полагаться на документы в формате .txt, а не на .html или .xblr, поскольку последние не всегда доступны. Я уже загрузил и частично очистил файлы .txt, чтобы удалить ненужные теги.
Короче говоря, моя цель состоит в том, чтобы сказать python циклически перебирать загруженные файлы .txt (например, все файлы в одной папке или просто путем предоставления справочного списка .txt со всеми именами файлов), открывать каждый из них, искать слово «совокупный эффект» (в идеале, в сочетании с другими ключевыми словами, см. код ниже), извлечь 5 строк до и после него, а затем экспортировать выходные данные в Excel с именем файла в столбце A и извлеченным абзацем в столбце B.
Используя этот код Мне удалось извлечь 5 строк выше и ниже ключевого слова "кумулятивный эффект" для одного файла .txt (который вы можете найти здесь , для справки).
Однако я все еще борюсь с автоматизацией / циклом всего процесса и экспортом извлеченного текста в Excel, используя панд.
import collections
import itertools
import sys
from pandas import DataFrame
filing='0000950123-94-002010_1.txt'
#with open(filing, 'r') as f:
with open(filing, 'r', encoding='utf-8', errors='replace') as f:
before = collections.deque(maxlen=5)
for line in f:
if ('cumulative effect' in line or 'Cumulative effect' in line) and ('accounting change' in line or 'adoption' in line or 'adopted' in line or 'charge' in line):
sys.stdout.writelines(before)
sys.stdout.write(line)
sys.stdout.writelines(itertools.islice(f, 5))
break
before.append(line)
findings = {'Filing': [filing],
'Extracted_paragraph': [line]
}
df = DataFrame(findings, columns= ['Filing', 'Extracted_paragraph'])
export_excel = df.to_excel (r'/Users/myname/PYTHON/output.xlsx', index = None, header=True)
print (df)
Используя эту строку кода, я получаю нужный абзац, но мне удалось экспортировать только одну строку, в которой содержится ключевое слово, чтобы преуспеть, а не весь текст.
Это вывод Python и
это экспортированный текст в Excel .
Как мне создать цикл и правильно экспортировать весь интересующий абзац в excel?
Большое спасибо заранее !!