【发布时间】:2021-09-10 08:00:57
【问题描述】:
使用 SEC Edgar Lofgile 数据库时,我面临着一些挑战。 (https://www.sec.gov/dera/data/edgar-log-file-data-set.html)
我的工作是一步一步下载数据,然后将各种 IP 地址分配给公司。通过结合使用 WRDS、ARIN Bulk Whois 数据库和字符串匹配,我能够将公司与 IP 地址进行匹配。
各个数据集存储在一个 zip 文件中。目前我使用如下代码解压文件,速度慢,占用内存大:
import pandas as pd
import requests
import zipfile
from io import BytesIO
#last day of the database
html = 'http://www.sec.gov/dera/data/Public-EDGAR-log-file-data/2017/Qtr2/log20170630.zip'
def get_df(html):
#open zipfile via requests/BytesIO/ZipFile
r_zip = requests.get(html)
zip_file = zipfile.ZipFile(BytesIO(r_zip.content))
files = zip_file.namelist()
#read zip as DataFrame
with zip_file.open(files[0]) as log:
data = pd.read_csv(log)
提取后,我分析记录(groupby 公司等)并将结果保存在 csv 文件中。但是,我的分析结果仍然很大,以至于很难下载整个 SEC Edgar 日志文件的数据库。
- 有谁知道更快、更省内存的下载方式 数据库?
- 有谁知道如何保存 结果,以便可以使用整个数据库?
【问题讨论】:
标签: python stored-procedures bigdata zipfile