我已经在这个问题上坐了很长时间了,我正在寻求帮助。我一直在处理来自SEC EDGAR的数据,其中设法下载了CIK编号,日期,公司名称和ftp路径,以获取公司年度报告的每一个。总而言之,我应该下载7,000行。
我使用Python运行代码以下载这些文本文件(通过读取ftp路径)并将其保存在本地计算机上。这些文件的名称等于CIK号,日期和公司名称,并以'-'分隔。
此后,我写了以下内容以交叉检查是否已下载所有7,000个文本文件:
import os
import csv
tenk_path = "D:/10ks/1 download/"
arr = os.listdir(tenk_path)
csvfile = "data.csv"
with open(csvfile, "a", newline="") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(['cik', 'name', 'year', 'unique_key'])
for name in arr:
main_name = name.split("-")
unique_key = str(main_name[0])+str(main_name[-1])
csvRow = [main_name[0],
main_name[1],
main_name[-1],
unique_key]
with open(csvfile, "a", newline="") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(csvRow)
print(name)
然后,我将(对于方便起见)将CIK和日期(年份)连接起来,这对于所有公司而言都是唯一的。然后,通过使用= TRIM并通过= VALUE将文本字符串转换为数字,确保没有空格。
通过执行此操作,我将要下载的文件的CIK编号和年份相匹配,并与我确实要下载的文件相匹配(6,994)。这样,我发现我找到了所有7,000个匹配项-这在我头上根本没有意义?我已经确保没有路径等是重复的开头,所以不可能如此。
有人可以帮忙吗?数据可以在这里找到:
答案 0 :(得分:1)
我很快就回顾了所有重复内容。我通过强行迫使Excel仅基于串联唯一地进行过滤来解决此问题。但是,此后,我注意到某些ftp路径是重复的-因此,SEC的EDGAR部分出现了错误。