Skip to main content

将 WRDS 表或 SAS 数据导入 PostgreSQL。从 https://github.com/iangow/wrds2pg 分叉。

项目描述

WRDS(或 SAS)到 PostgreSQL

本软件有两个功能:

  • 从WRDS下载表并将它们提供给 PostgreSQL 数据库。(需要访问 WRDS 和相关数据。)
  • 将 SAS 文件 ( *.sas7dbat) 导入 PostgreSQL 数据库。

要求

1. 蟒蛇

该软件使用 Python 3 并依赖于 Pandas、SQLAlchemy 和 Paramiko。此外,Python 脚本通常使用 SQLAlchemy 和Psycopg库与 PostgreSQL 交互。使用 Pip 时会安装这些依赖项(请参阅下面的说明)。

2. WRDS ID

要使用公钥身份验证访问 WRDS,请按照此处的提示设置公钥。将该密钥从我计算机上的终端复制到 WRDS 服务器。(请注意,此代码假定您的.ssh主目录中有一个目录。如果没有,请通过 SSH 登录到 WRDS,然后键入mkdir ~/.ssh以创建它。)这是创建密钥并将其发送到 WRDS(对我而言)的代码:

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys"

在设置密钥时使用空密码,以便脚本无需用户干预即可运行。

3. PostgreSQL

您应该有一个 PostgreSQL 数据库来存储数据。

4.环境变量

代码可以使用的环境变量包括:

  • PGDATABASE:您使用的 PostgreSQL 数据库的名称。
  • PGUSER: 您在 PostgreSQL 数据库上的用户名。
  • PGHOST:在哪里可以找到 PostgreSQL 数据库(localhost如果它在与您运行代码的同一台机器上)
  • WRDS_ID:您的WRDS ID。

我将这些环境变量设置在~/.profile

export PGHOST="localhost"
export PGDATABASE="crsp"
export WRDS_ID="iangow"
export PGUSER="igow"

使用功能wrds_update

两个参数table_nameschema是必需的。

1. WRDS 设置

在函数调用或环境变量中设置WRDS_ID 使用。wrds_id=your_wrds_idWRDS_ID

2.PG设置

该软件将使用环境变量PGHOST,PGDATABASEPGUSER如果你设置了它们。否则,您需要将值作为参数提供给wrds_udpate(). 默认PGPORT5432

3.表设置

要定制您的请求,请指定以下参数:

  • fix_missing:设置为True修复缺失值。这解决了特殊的错误值,SAS将其PROC EXPORT转储为字符串。默认值为False
  • fix_cr:设置True为固定字符。默认值为False
  • drop: 添加要删除的列名(例如,drop="id name"将删除列idname)。
  • obs:添加最大观察数(例如,obs=10将导入 WRDS 表中的前 10 行)。
  • rename: 重命名列(例如,rename="fee=mngt_fee"重命名feemngt_fee)。
  • force:设置True为强制更新。默认值为False

将 SAS 数据导入 PostgreSQL

该软件还可以将 SAS 文件直接上传到 PostgreSQL。您需要有本地 SAS 才能使用此功能。用于fpath指定要导入的文件的路径

例子

这里有些例子。

如果你在这个 git repo 的主目录,你可以导入和使用软件,如下图所示。

从 Github 安装它:

sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade

该软件也可从 PyPI 获得。要从PyPI安装它:

pip3 install wrds2pg

示例用法:

from wrds2pg.wrds2pg import wrds_update

# 1. Download crsp.mcti from wrds and upload to pg as crps.mcti
# Simplest version
wrds_update(table_name="mcti", schema="crsp")

# Tailored arguments 
wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 
	dbname=your_pg_database, 
	fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 
	rename="caldt=calendar_date", force=True)

# 2. Upload test.sas7dbat to pg as crsp.mcti
wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat")

报告错误

作者:Ian Gow,iandgow@gmail.com

投稿人:张靖宇,jingyu.zhang@chicagobooth.edu

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

wrds2postgres-0.0.6.tar.gz (8.7 kB 查看哈希

已上传 source