4

我正在使用 Edgar 的 10-Ks。为了协助文件管理和数据分析,我想创建一个表格,其中包含每个文件的路径、提交的公司的 CIK 号(这是 SEC 颁发的唯一 ID)以及它所属的 SIC 行业代码. 下面是一张直观地代表我想要做的图像。

我要提取的两件事列在每个文档的顶部。CIK # 将始终是在短语“CENTRAL INDEX KEY:”之后列出的数字。SIC # 将始终是“标准工业分类”后面的括号中的数字,然后是对该特定行业的描述。

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

待办事项:

  1. 循环文件:提取文件路径、CIK 和 SIC 编号——注意我每个文档只得到一个返回,每个结果都是按顺序排列的,所以我的字段之间的记录对齐。

  2. 将这些字段合并在一起——我猜最好的方法是将每个字段提取到它们自己单独的列表中,然后合并,也许是一个 Pandas 数据框?

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

谢谢你看看。如果我可以提供其他文件,请告诉我。

我要提取的两条元数据位于每个文档的顶部。 CIK # 将始终是一个列在短语后面的数字

4

1 回答 1

1

这是我刚刚为做类似事情而编写的一些代码。您可以将结果输出到 CSV 文件。作为第一步,您需要遍历文件夹并获取所有 10-K 的列表并对其进行迭代。

    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
于 2019-02-01T03:57:19.867 回答