下载wrds表并上传到postgresql,将sas文件上传到pg

wrdstopg的Python项目详细描述


WRDS到PG的迁移

此软件有两个功能:

  • 从wrds下载表格并上传到pg.
  • 将SAS文件(*.sas7dbat)上载到pg.

1.Python

该软件使用python 3,依赖于pandas、sqlalchemy和paramiko。

2.WRDS设置

wrds_id=your_wrds_id设置WRDS_ID,否则软件将从os环境变量中grep。

要使用公钥身份验证访问wrd,请遵循提示here。首先设置一个公钥,然后将该密钥从终端复制到wrds服务器。

(注意,此代码假定您的主目录中有一个目录.ssh。如果没有,请通过ssh登录wrds,然后键入mkdir ~/.ssh来创建此文件。)

下面是创建密钥并将其发送到wrds的代码。

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

在设置我的密钥时使用空密码短语,以便脚本可以在没有用户干预的情况下运行。

3.PG设置

如果您将PGHOSTPGDATABASEPGUSER设置为环境变量,则软件可以对它们进行grep。否则,用户在使用wrds_udpate()时需要指定它们。默认的PGPORT5432

需要两个变量tableschema

4.表格设置

要调整表格,请指定以下变量:

fix_missing:设置为True以修复缺少的值。默认值是False

fix_cr:设置为True以修复字符。默认值是False

drop:添加要删除的列名。例如,drop="id name"将删除列idname

^ {CD24>}:加入最大数量的观测值。例如,obs=10将从表中导出前10行。

rename:重命名列。例如,rename="fee=mngt_fee"fee重命名为mngt_fee

force:设置为True以强制更新。默认值是False

5。上载SAS文件

该软件还可以直接上传SAS文件到PG。您需要有本地SAS才能使用此功能。

使用fpath指定文件路径。

6.示例

这里有一些例子。

fromwrdstopgimportwrdstopg# 1. Download crsp.mcti from wrds and upload to pg as crps.mcti# Simplest versionwrdstopg.wrds_update(table="mcti",schema="crsp")# Tailor table to your needswrdstopg.wrds_update(table="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.mctiwrdstopg.wrds_update(table="mcti",schema="crsp",fpath="your_path/test.sas7dbat")

7.报告错误

作者:Ian Gow,ian.gow@unimelb.edu.au

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用setter将对象转换为java中的映射   java如何通过JQL直接找到多对多实体的交集?   java Android文本检查帮助   纸牌游戏中的java玩家顺序   java从活动A移动到活动B,再从活动B返回到活动A   java如何在GAE servlet中保存JSON文件以满足Android客户端的请求?   连接到本地主机上的SLiM服务器时发生java错误:8080   java是否可以使用setOnMarkerClickListener对for循环中创建的各种标记产生不同的结果?   检查数字是否为回文的java逻辑   java在两个独立的服务中是否存在数据同步模式?   java在组合框中选择ascendingorder时如何对元素列表进行排序   java如何在不更新旧表的情况下更新表中的字段并将其插入新表   javasos和return语句   java与示例安卓活动建立解析连接。错误:任务“:app:dexDebug”的执行失败   java Maven发布问题,带有代理授权的分叉部署过程,因为参数失败,需要407代理授权