我想到的流程:
1.从SAS出口sas7bdat
2.使用pd.read_sas
在python中导入该文件,并在中填写一些内容
3.将pandas数据帧导出到sas7bdat(或其他一些SAS二进制文件格式)。我认为pd.to_sas
会存在,但它不存在
4.在SAS中打开新文件并对其进行更多操作
上面的第3点是否有解决方案?在我看来,我唯一的选择是csv或一些SQL数据库 这不是一个编程问题。希望这不会成为一个问题。
答案 0 :(得分:4)
Python能够写入SAS .xpt格式(例如参见the xport library),这是SAS的开放文件格式。 SAS7BDAT是一种封闭的文件格式,不打算由其他语言读/写;有些人已经进行了足够的逆向工程,至少可以阅读,但是从我所看到的并不存在优秀的SAS7BDAT作家(例如,R有避风港,这是我见过的最好的,但它仍有问题和事情它不能这样做。
比XPT文件更常见的是,编写CSV然后在python / etc中编写SAS输入脚本可能会很慢。程序。这使您可以非常轻松地使用变量标签,值标签,类型等;编写SAS输入脚本非常容易。许多其他软件包都是为了生成SAS文件的首选方法。这还有一个额外的优势,即它很容易跨平台 - 如果您的SAS程序在大型机,UNIX,Windows等上,则无关紧要;它完全一样。
答案 1 :(得分:0)
“ SAS7BDAT是一种封闭的文件格式,不希望被其他语言读取/写入;某些文件已经对其进行了反向工程,至少可以读取,但是据我所知,没有好的SAS7BDAT编写器存在。”
尽管SAS7BDAT是专有格式,但未关闭。第三方产品可以使用SAS自己的ODBC驱动程序对其进行读写。 https://support.sas.com/en/software/sas-odbc-drivers.html。由于Python可以使用ODBC(pyodbc),因此只需使用SAS ODBC驱动程序来编写SAS7BDAT文件格式。
IBM SPSS Statistics和IBM SPSS Modeler也可以读取和写入SAS7BDAT格式以及上述的早期版本7格式和SAS传输文件格式(.xpt)文件。这些产品不需要ODBC即可执行此操作,并且此功能通过SAVE Translate命令包含在SPSS Statistics Base中。它通过SAS Source节点(用于读取)和SAS Export(SAS导出)节点包括在SPSS Modeler Professional中。