将大型SAS数据集转换为hdf5

时间:2014-02-10 01:17:52

标签: python pandas sas hdf5

我有多个大型(> 10GB)SAS数据集,我想转换它们用于pandas,最好是HDF5。有许多不同的数据类型(日期,数字,文本),一些数字字段也有不同的错误代码用于缺失值(即值可以是。,。E,.C等)我希望保留列名和标签元数据。有没有人找到一种有效的方法来做到这一点?

我尝试使用MySQL作为两者之间的桥梁,但是我在传输时遇到了一些超出范围的错误,而且速度非常慢。我也试过以Stata .dta格式从SAS导出,但SAS(9.3)以旧的Stata格式导出,与pandas中的read_stat()不兼容。我也尝试了sas7bdat包,但是从描述中它还没有经过广泛测试,所以我想以另一种方式加载数据集并比较结果以确保一切正常。

额外的细节:我想要转换的数据集是来自CRDS的CRSP,Compustat,IBES和TFN。

2 个答案:

答案 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

欢迎改进!