我在和埃德加的10公里一起工作。为了帮助进行文件管理和数据分析,我想创建一个表,其中包含每个文件的路径、公司文件的CIK编号(这是SEC发布的唯一ID)以及它所属的SIC行业代码。下面是一个形象地表示我想做什么。
我要提取的两个内容列在每个文档的顶部。CIK始终是在短语“中央索引键:”后面列出的数字。SIC始终是“标准行业分类”后括号内的数字,然后是该特定行业的描述。
这在所有文件中都是一致的。
待办事项:
循环文件:提取文件路径、CIK和SIC编号——注意,每个文档只有一个返回,每个结果都是有序的,所以字段之间的记录是对齐的。
将这些字段合并在一起——我猜最好的方法是将每个字段提取到各自独立的列表中,然后合并,也许合并到Pandas数据框中?
最终,我将使用这个表来帮助我在SIC行业之间对数据进行子集。
谢谢你看一眼。请让我知道,如果我可以提供额外的文件。
python - 从10-K中提取SIC,CIK,创建元数据表-LMLPHP

最佳答案

下面是我为做类似的事情而写的一些代码。您可以将结果输出到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

10-05 18:45