将WRDS表或SAS数据导入PostgreSQL。分叉的https://github.com/iangow/wrds2pg。
wrds2postgres的Python项目详细描述
WRDS(或SAS)到PostgreSQL
该软件有两个功能:
- 从WRDS下载表并将它们馈送到PostgreSQL数据库。(需要访问WRD和相关数据。)
- 将SAS文件(
*.sas7dbat
)导入PostgreSQL数据库。在
要求
1。Python
该软件使用python3,依赖于Pandas、SQLAlchemy和Paramiko。此外,Python脚本通常使用SQLAlchemy和Psycopg库与PostgreSQL交互。 这些依赖项是在使用Pip时安装的(请参阅下面的说明)。在
2。WRDS ID
要使用公钥身份验证访问WRDS,请按照从here获取的提示设置公钥。
把那个密钥从我电脑上的终端复制到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
:您的WRDSID
我在~/.profile
中设置了这些环境变量:
使用函数wrds_update
需要两个参数table_name
和{
1。WRDS设置
使用函数调用中的wrds_id=your_wrds_id
或环境变量WRDS_ID
设置{
2。PG设置
软件将使用环境变量PGHOST
、PGDATABASE
和{wrds_udpate()
的参数。默认PGPORT
是5432
。在
3。表格设置
要定制请求,请指定以下参数:
fix_missing
:设置为True
以修复丢失的值。这处理特殊的missign值,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
用法示例:
fromwrds2pg.wrds2pgimportwrds_update# 1. Download crsp.mcti from wrds and upload to pg as crps.mcti# Simplest versionwrds_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.mctiwrds_update(table_name="mcti",schema="crsp",fpath="your_path/test.sas7dbat")
报告Bugs
作者:伊恩·高,iandgow@gmail.com
撰稿人:张靖宇jingyu.zhang@chicagobooth.edu
- 项目
标签: