用于SEC NMFP2归档的Python刮刀。
secmmf的Python项目详细描述
SEC N-MFP2货币市场基金持股数据
- 作者:韩阳珏
- 日期:2020年5月
简介
此存储库包含的代码允许用户从SEC EDGAR系统解析和下载N-MFP2文件中的货币市场基金持股信息。每个月底,所有美国货币市场基金都必须向SEC报告其持有的证券,包括身份、到期日、市值、到期收益率、发行人信息和其他特征。对于回购协议合同,货币市场基金还必须报告抵押品证券的信息。这个数据集的粒度为金融经济学家研究影子银行系统的相关问题提供了无与伦比的机会。在
安装
pip install secmmf
使用
初始设置
模块secmmf
包含一组函数,用于解析和下载N-MFP2文件中的信息。用户应首先指定将下载的数据存储到data_dir
的目录路径,data_dir
的存储至少应为20GBs。请注意,该软件包只能用于下载N-MFP2文件,但可以扩展为下载其他格式类似的文件。该软件包不提供任何数据清理功能。在
建立文件索引
首先,我们使用download_sec_index()
方法从SEC-EDGAR系统下载并提取文件路径。在
- 通过指定
start_date
和end_date
,用户将把时间范围限制为[start_date
,end_date
]。默认开始日期为2016-10,结束日期为当月。在 - 该方法将在
data_dir
中输出一个名为index_file.csv
的csv文件。然后,我们使用generate_index()
创建一个url文件,该文件链接到易于解析的XML文件,名为pathfile
。在
secmmf.download_sec_index(data_dir, form_name = 'N-MFP2', start_date = '2016-10', end_date = '2020-05')
generate_index(data_dir, pathfile)
下载原始文件
接下来,我们从pathfile
下载XML文件,并使用scrape()
将它们解析为未修改的csv文件。在
- 根据要下载的文件数和internet连接,此步骤可能最多需要4小时。在
pathfile
中包含的路径被分成20个块,相应的csv文件将保存到20个不同的子文件夹中。在- 如果程序在任何块中断,用户可以指定
start_block
或{}来修改要下载的文件的确切部分。在
scrape(data_dir, pathfile, N_blocks=20, start_block=1, end_block=20)
生成基金级别和持股级别表
原始csv文件包含非结构化数据,这些数据将基金级信息和资产持有量结合起来。我们可以使用gen_table_fund()
和gen_table_holdings()
来生成包含基金级信息和资产持有量的现成数据的表格。最后,wrap()
方法将所有格式化的表组合成一个表,用于每个级别的信息,并清理数据文件夹。在
gen_table_fund(data_dir, pathfile)
gen_table_holdings(data_dir, pathfile)
wrap(data_dir)
# Done!
- 项目
标签: