将SPSS数据集导入Python

6
有没有办法将SPSS数据集导入Python,最好是NumPy recarray格式? 我搜索了一下,但没有找到答案。
7个回答

3

SPSS与Python有广泛的集成,但这是为了与SPSS(现在称为IBM SPSS统计)一起使用。有一个SPSS ODBC驱动程序可以与Python ODBC支持一起使用,以读取sav文件。


或者你可以使用Python从SPSS内部以任何格式保存它,我猜?但是这两种解决方案都需要“joon”能够访问SPSS(据我所知,这相当昂贵)。 - JanC

3

选项1 正如rkbarney所指出的那样,可以通过pypi获得Python savReaderWriter。但是我遇到了两个问题:

  1. 它依赖于很多额外的库,超出了看似纯Python实现的范围。几乎所有情况下,IBM提供的SPSS I/O模块读取和写入SPSS文件。这些模块因平台而异,在我的经验中,“pip install savReaderWriter”不能使它们在OS X上直接运行。
  2. savReaderWriter的开发虽然没有停滞不前,但更新速度较慢。这使第一个问题变得更加复杂。为了提高速度,它依赖于一些已弃用的软件包,并且如果引入savReaderWriter时它们不可用,则会给出一些警告。虽然今天不是很大的问题,但随着IBM继续更新SPSS I/O模块以处理新的SPSS格式(如果我没记错,他们已经更新到版本21或22),这可能会带来麻烦。

选项2 我选择使用R作为中间人。使用rpy2,我设置了一个简单的函数将文件读入R数据框并将其输出为CSV文件,然后将CSV文件导入python。虽然有点“鲁博·戈尔德伯格”的感觉,但确实有效。当然,这需要R,在您的环境中安装R可能也是一个麻烦(不同平台有不同的二进制文件)。


John,您能否请友善地将基于rpy2的方法的代码发布在GitHub Gist或pastebin.com上?我正在解决这个问题https://dev59.com/iZXfa4cB1Zd3GeqPgYhe,而您的方法可能会有所帮助。 - Pyderman

2

您可以让Python调用spssread,这是一个Perl脚本,可以按照您的要求输出SPSS文件的内容。


2
gretl声称可以导入SPSS并以多种格式导出,R统计套件也是如此。我从未处理过SPSS数据,因此无法对它们的相对优点发表意见。”

1

非常感谢!这正是我在寻找的东西...看起来非常有用。 - joon

1

1
需要明确的是,SPSS ODBC驱动程序不需要安装SPSS。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接