如何在文本文件中搜索关键字的组合,在上方和下方提取行,然后使用熊猫导出到Excel



我试图在几个sec 10-k备案的特定关键字组合之前和之后提取5行,然后将该数据导出到Excel中,以便然后我可以手动进行进一步处理。不幸的是,我必须依靠.txt格式归档,而不是.html或.xblr的文件,因为后者并不总是可用。我已经下载并部分清洁了.txt文件以删除不需要的标签。

简而"累积效应"一词(理想地与其他关键字结合在一起,请参见下面的代码(,在其之前和之后提取5行,然后将输出输出到A列中的文件名和列中的FileName和Fifted段落。<<

使用此代码,我设法在一个.txt文件的关键字"累积效果"上方提取5行(您可以在此处找到,供参考(。但是,我仍在努力自动化/循环整个过程,并使用熊猫将提取的文本导出到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中?预先感谢!

我相信您的基本错误在

'Extracted_paragraph': [line]

应该是

'Extracted_paragraph': [before]

因此,随着一些简化的更改,您的代码的主要部分应该看起来像:

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):
          break
      before.append(line)
before = ''.join(before)
findings = {'Filing': [filing],
        'Extracted_paragraph': [before]
        }
df = DataFrame(findings, columns= ['Filing', 'Extracted_paragraph'])

,然后从那里继续出口到Excel等。

相关内容

  • 没有找到相关文章

最新更新