我知道这确实是WRDS专用的,我不确定有人可以帮助我,但我认为我也可以尝试:
我对以下内容感到困惑,并且在我在测试环境中所做的所有请求都一直在发生。 虽然我想直接从python解释器查询WRDS数据,但似乎无法获得与在网站上手动获取csv文件时相同的数据。
具体示例: 我从S&P500成分中提取了总共713个gvkey的列表(历史记录> = 01/01/2010->也必须手动执行此操作,因为我未按日期对表格进行排序,但是在WRDS网站上您可以选择时间-ranges //任何想法如何使用python和原始sql进行此操作?)。 对于该gvkey列表,我想在给定的时间范围内从wrdsapps.firm_ratio获取财务比率,如下所示:
fin_ratios = db.raw_sql("""
SELECT gvkey, permno, public_date, ptb, bm
FROM wrdsapps.firm_ratio
WHERE gvkey in %(gvkeys)s
AND public_date >= '01/01/2010'
""", params = parm)
fin_ratios.gvkey.nunique()
那只给了我121个唯一的gvkey。 如果我通过WRDS查询页面手动进行相同的练习(将gvkeys列表作为.txt文件),则会获得原始713家公司中646家的数据。我怎么了?
其他数据库和表也发生了同样的事情,例如crsp.ccmxpf_lnkhist对于相同的gvkey列表。
我还想知道其他一些事情: 当我通过python API发布我在上面发布的请求时,我得到一个表,正如我所说的只有121个gvkeys,但是我也得到了一个列,其中包含了它们对应的permnos(!) 如果我在WRDS站点上手动进行操作,则无法获得Permnos,而是不得不通过(相当乏味的)CCM数据库将财务比率数据链接到CRSP价格数据。
这两个过程之间有什么区别吗?为什么permnos不会出现在从WRDS手动下载的csv文件中?
非常感谢您的帮助。谢谢!