将 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_name和schema是必需的。
1. WRDS 设置
在函数调用或环境变量中设置WRDS_ID 使用。wrds_id=your_wrds_idWRDS_ID
2.PG设置
该软件将使用环境变量PGHOST,PGDATABASE和PGUSER如果你设置了它们。否则,您需要将值作为参数提供给wrds_udpate(). 默认PGPORT为5432。
3.表设置
要定制您的请求,请指定以下参数:
fix_missing:设置为True修复缺失值。这解决了特殊的错误值,SAS将其PROC EXPORT转储为字符串。默认值为False。fix_cr:设置True为固定字符。默认值为False。drop: 添加要删除的列名(例如,drop="id name"将删除列id和name)。obs:添加最大观察数(例如,obs=10将导入 WRDS 表中的前 10 行)。rename: 重命名列(例如,rename="fee=mngt_fee"重命名fee为mngt_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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 2925f770a1a13136537325f625e840e55c00e0db7866af7e1eeaef93b58750db |
|
| MD5 | cd8aeb8fd949169ab0e102b014f25b26 |
|
| 布莱克2-256 | eeb80fe830519fe41ee82e901a76e350a7391b87d198dc53bfdffaa0d7271c85 |