从10K提取SIC,CIK,创建元数据选项卡

2024-04-25 04:47:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我和埃德加的10个K一起工作。为了帮助文件管理和数据分析,我想创建一个表,其中包含每个文件的路径、公司文件的CIK编号(这是SEC颁发的唯一ID)以及它所属的SIC行业代码。下面我要做的是用视觉表现一个图像。在

我要提取的两个内容列在每个文档的顶部。CIK始终是列在短语“中央索引键:”之后的数字。SIC始终是“标准行业分类”后括号内的数字,然后是该特定行业的描述。在

这在所有文件中都是一致的。在

待办事项:

  1. 循环遍历文件:提取文件路径、CIK和SIC编号——注意每个文档只得到一个返回,每个结果都是有序的,因此字段之间的记录会对齐。

  2. 将这些字段合并在一起——我猜最好的方法是将每个字段提取到各自独立的列表中,然后合并,也许合并到熊猫数据帧中?

最后,我将使用此表来帮助我对SIC行业之间的数据进行子集划分。在

谢谢你看。请让我知道如果我可以提供额外的文件。在

The two pieces of metadata I want to extract are at the top of each document. The CIK # will always be a number which is listed after the phrase "CENTRAL INDEX KEY:". The SIC # will always be a number enclosed in brackets after "STANDARD INDUSTRIAL CLASSIFICATION" and then a description of that particular industry.


Tags: 文件数据代码文档路径id公司数字
1条回答
网友
1楼 · 发布于 2024-04-25 04:47:59

这里有一些我刚刚写的代码来做类似的事情。您可以将结果输出到CSV文件。作为第一步,您需要遍历该文件夹并获得所有10K的列表并在其上迭代。在

    year_end = ""
    sic = ""

    with open(txtfile, 'r', encoding='utf-8', errors='replace') as rawfile:
        for cnt, line in enumerate(rawfile):
            #print(line)
            if "CONFORMED PERIOD OF REPORT" in line:
                year_end = line[-9:-1]
                #print(year_end)
            if "STANDARD INDUSTRIAL CLASSIFICATION" in line:
                match = re.search(r"\d{4}", line)
                if match:
                    sic = match.group(0)
                    #print(sic)
                #print(sic)
            if (year_end and sic) or cnt > 100:
                #print(year_end, sic)
                break

相关问题 更多 >