乱码问题

http://www.360doc.com/content/17/0816/08/16915_679542503.shtml 

2.sav格式问题

在使用SPSS Modeler进行数据分析和数据挖掘时,官方Demos中自带数据的格式为sav格式,我们只能通过该软件进行数据的读取,如果想在其他途径如MySQL中导入该数据,那是不行的。

demosav

如果我们在学习SPSS教程苦于没有合适数据的时候,那么官方Demos中的数据应该是一个非常好的选择。在此需要解决一个格式转换的问题,就是如何将sav格式转换成常见的数据格式,如csv格式。目前有个开源的Python库,叫savReaderWriter,用于支持sav文件的读写,我们可以利用这个库来进行读操作,并将数据写入其他文件格式。

如下所示,是我写的一个自动寻找sav文件并转换成csv文件的脚本:

 
  1. #coding: utf-8
  2. import os
  3. import glob
  4. from savReaderWriter import SavReader
  5. import numpy as np
  6. import pandas as pd
  7.  
  8. '''
  9. .sav - the IBM SPSS Statistics Input Output Module
  10. '''
  11.  
  12. def convertSavToCsv(srcFile):
  13. ## Reading files
  14. fpathandname, fext = os.path.splitext(srcFile)
  15. assert fext == '.sav'
  16. desFile = fpathandname+'.csv'
  17. with SavReader(srcFile) as fp:
  18. names = fp.varNames
  19. types = fp.varTypes
  20. header = fp.header
  21. # for line in fp:
  22. # print line
  23. records = fp.all()
  24. # print records
  25. # records_array = np.array(records)
  26. # print records_array
  27. records_dataframe = pd.DataFrame(records, index=None, columns=names)
  28. # print records_dataframe
  29. records_dataframe.to_csv(desFile, index=0)
  30.  
  31. if __name__ == '__main__':
  32. filename = 'someFile.sav'
  33. convertSavToCsv(filename)
  34. for filename in glob.glob('./*.sav'):
  35. print filename
  36. convertSavToCsv(filename)

这样在sav文件当前路径下,运行该脚本就可以生成同名的csv文件,同样的,可以将读取的数据存储位其他文件格式如xlsx格式,将官方demo中源节点更改。也可以将数据导入数据库,通过其他途径进行数据分析和挖掘操作。

demo1

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值