0

我正在使用wrdsPython 中的模块从 WRDS 中提取数据。在 SAS 中,我可以轻松地将本地文件上传到 WRDS 服务器,以在 WRDS 服务器上的 SQL 语句中使用。代码是:

proc upload data=mydatafile out=mydatafile; run;

Python中有类似的东西吗?我有一个名为 Pandas 的 DataFrame,send_to_crsp其中包含我想在raw_sql下面的语句中使用的代码和日期:

import pandas as pd
import wrds

db = wrds.Connection()

rets = db.raw_sql('''
                    select a.TIC, a.DATE_FILED0, a.DATE_FILED5, b.date, b.ret
                    from send_to_crsp as a, crsp.dsf as b
                    where a.TIC=b.tic and b.date >= a.DATE_FILED and b.date <= a.DATE_FILED5
                  ''',
                  date_cols = ['DATE_FILED0','DATE_FILED5','date'])
4

1 回答 1

0

WRDS 用户没有权限,CREATE TABLE甚至没有CREATE TEMPORARY TABLE权限,因此无法将数据放入 WRDS PostgreSQL 服务器上的表中。

为了在 R 上处理这个问题(请参阅此处的 StackOverflow 问题),我基本上将本地数据帧转换为以下形式的 SQL 语句:

SELECT * FROM 
    (VALUES (10000, '2012-01-03'), (10001, '2013-02-04')) AS t (permno, date))

使用dplyr它很容易将其制成可以与crsp.dsf. 有关执行所有这些操作的功能,请参见此处(有关该功能使用的说明,请参见此处)。

不幸的是,对于 Python 来说,对这类数据分析工作流程的支持和文档似乎要弱得多。也许可以使用 SQLAlchemy 进行类似的操作。

于 2021-06-20T11:27:30.757 回答