我有多个大型(> 10GB)SAS数据集,我想转换它们用于pandas,最好是HDF5。有许多不同的数据类型(日期,数字,文本),一些数字字段也有不同的错误代码用于缺失值(即值可以是。,。E,.C等)我希望保留列名和标签元数据。有没有人找到一种有效的方法来做到这一点?
我尝试使用MySQL作为两者之间的桥梁,但是我在传输时遇到了一些超出范围的错误,而且速度非常慢。我也试过以Stata .dta格式从SAS导出,但SAS(9.3)以旧的Stata格式导出,与pandas中的read_stat()不兼容。我也尝试了sas7bdat包,但是从描述中它还没有经过广泛测试,所以我想以另一种方式加载数据集并比较结果以确保一切正常。
额外的细节:我想要转换的数据集是来自CRDS的CRSP,Compustat,IBES和TFN。
答案 0 :(得分:1)
过去我的运气并不好。我们(我工作的地方)只使用Tab分隔文件在SAS和Python之间传输 - 我们做了很多。
也就是说,如果您使用的是Windows,则可以尝试设置ODBC连接并以此方式编写文件。
答案 1 :(得分:0)
您可能对sas7bdat的fork中使用的脏黑客感兴趣。它提供了一个read_sas方法,用于将sas文件读入pandas数据框。
原始sas7bdat:http://git.pyhacker.com/sas7bdat
fork read_sas:https://github.com/openfisca/sas7bdat
欢迎改进!