我想在 WRDS SQL 查询中使用多个变量。我正在寻求按 PERMNO 和日期搜索 CRSP 数据库,返回特定公司在特定日期的股票价格。我有一个大型 DataFrame,将从中检索这些变量并用于搜索 CRSP 数据库。
在:
sql_query = """
SELECT cusip, permno, date, prc
FROM crsp_a_stock.dsf
WHERE permno = 12490
AND date in %(dates)s
LIMIT 100
"""
parm = {'dates': tuple([line for line in open('dates.txt', 'r')])}
df = db.raw_sql(sql_query, params=parm)
df
出去:
cusip permno date prc
0 45920010 12490.0 1996-01-31 108.5
这将根据需要在 1996 年 1 月 31 日输出 IBM (PERMNO 12490) 的数据。我的问题是我还希望能够将 permno 条件链接到一个变量,这样我就可以运行查询并检索每个公司在特定日期的价格数据。
此代码基于此Answer。
这可以通过 db.raw_sql 完成吗?我已经搜索了WRDS 帮助站点(特别是向 SQL 传递参数部分),但无法解决这个问题。我对解决方案的细节(例如使用 .txt 输入文件而不是数据框)并不大惊小怪,我只需要能够为多个 WHERE 条件实现变量。如果无法通过 db.raw_sql 实现,是否有任何其他方法可以通过 Python 访问 WRDS 数据库来允许这样做?
感谢您提供任何提示或指示。