6

有什么方法可以将 SPSS 数据集导入 Python,最好是 NumPy recarray 格式?我环顾四周,但找不到任何答案。

4

7 回答 7

3

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

  1. 除了看似纯 python 的实现之外,它还依赖于许多额外的库。SPSS 文件几乎在所有情况下都由 IBM 提供的 SPSS I/O 模块读取和写入。这些模块因平台而异,根据我的经验,“pip install savReaderWriter”不会让它们开箱即用(在 OS X 上)。
  2. savReaderWriter 上的开发虽然没有死,但不如人们希望的那样最新。这使第一个问题复杂化。它依赖于一些已弃用的包来提高速度,并在您导入 savReaderWriter 时发出一些警告(如果它们不可用)。今天不是一个大问题,但未来可能会遇到麻烦,因为 IBM 会继续更新 SPSS I/O 模块以处理新的 SPSS 格式(如果有记忆,它们已经在版本 21 或 22 上)。

选项 2 我选择使用 R 作为中间人。使用 rpy2,我设置了一个简单的函数来将文件读入 R 数据帧并再次将其作为 CSV 文件输出,然后我将其导入 python。这有点 rube-goldberg 但它有效。当然,这需要 R,在您的环境中安装也可能很麻烦(并且对于不同的平台有不同的二进制文件)。

于 2014-01-27T19:42:58.197 回答
3

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

于 2010-09-03T22:34:14.260 回答
2

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

于 2010-09-03T21:42:16.307 回答
2

您可以让 Python 对spssread进行外部调用,这是一个以您想要的方式输出 SPSS 文件内容的 Perl 脚本。

于 2011-11-30T06:58:17.083 回答
1

也许这对某人有帮助:

http://sourceforge.net/search/?q=python+SPSS

祝你好运!

迈克尔

于 2011-03-06T22:45:27.727 回答
1

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

于 2010-09-11T14:05:12.773 回答
1

也许这会有所帮助:用于 spss sav 文件(Linux、Mac 和 Windows)的 Python 阅读器 + 编写器 http://code.activestate.com/recipes/577811-python-reader-writer-for-spss-sav-files-linux-苹果电脑-/

于 2013-01-11T22:12:39.770 回答