在使用SPSS Modeler进行数据分析和数据挖掘时,官方Demos中自带数据的格式为sav格式,我们只能通过该软件进行数据的读取,如果想在其他途径如MySQL中导入该数据,那是不行的。
如果我们在学习SPSS教程苦于没有合适数据的时候,那么官方Demos中的数据应该是一个非常好的选择。在此需要解决一个格式转换的问题,就是如何将sav格式转换成常见的数据格式,如csv格式。目前有个开源的Python库,叫savReaderWriter,用于支持sav文件的读写,我们可以利用这个库来进行读操作,并将数据写入其他文件格式。
如下所示,是我写的一个自动寻找sav文件并转换成csv文件的脚本:
#coding: utf-8 import os import glob from savReaderWriter import SavReader import numpy as np import pandas as pd ''' .sav - the IBM SPSS Statistics Input Output Module ''' def convertSavToCsv(srcFile): ## Reading files fpathandname, fext = os.path.splitext(srcFile) assert fext == '.sav' desFile = fpathandname+'.csv' with SavReader(srcFile) as fp: names = fp.varNames types = fp.varTypes header = fp.header # for line in fp: # print line records = fp.all() # print records # records_array = np.array(records) # print records_array records_dataframe = pd.DataFrame(records, index=None, columns=names) # print records_dataframe records_dataframe.to_csv(desFile, index=0) if __name__ == '__main__': filename = 'someFile.sav' convertSavToCsv(filename) for filename in glob.glob('./*.sav'): print filename convertSavToCsv(filename)
这样在sav文件当前路径下,运行该脚本就可以生成同名的csv文件,同样的,可以将读取的数据存储位其他文件格式如xlsx格式,将官方demo中源节点更改。也可以将数据导入数据库,通过其他途径进行数据分析和挖掘操作。
转载请注明:宁哥的小站 » SPSS Modeler下sav格式转成csv格式