用于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文件,但可以扩展为下载其他格式类似的文件。该软件包不提供任何数据清理功能。在

^{pr2}$

建立文件索引

首先,我们使用download_sec_index()方法从SEC-EDGAR系统下载并提取文件路径。在

  • 通过指定start_dateend_date,用户将把时间范围限制为[start_dateend_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!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?