Импорт набора данных SPSS в Python

есть ли способ импортировать набор данных SPSS в Python, предпочтительно формат numpy recarray? Я огляделся, но не нашел ответа.

Джун

7 ответов


возможно, это поможет: Python reader + writer для файлов spss sav (Linux, Mac и Windows) http://code.activestate.com/recipes/577811-python-reader-writer-for-spss-sav-files-linux-mac-/


SPSS имеет обширную интеграцию с Python, но это предназначено для использования с SPSS (теперь известный как IBM SPSS Statistics). Существует драйвер SPSS ODBC, который может использоваться с поддержкой Python ODBC для чтения файла sav.


1 Как отметил rkbarney, есть Python savReaderWriter, доступный через pypi. Я столкнулся с двумя проблемами:

  1. он полагается на множество дополнительных библиотек за пределами, казалось бы, чистой реализации python. Файлы SPSS считываются и записываются почти в каждом случае с помощью модулей ввода-вывода SPSS, предоставляемых IBM. Эти модули отличаются платформой, и по моему опыту "pip install savReaderWriter" не запускает их из коробки (на ОС Икс.)
  2. разработка на savReaderWriter, хотя и не мертва, менее актуальна, чем можно было бы надеяться. Это усложняет первый вопрос. Он полагается на некоторые устаревшие пакеты для увеличения скорости и дает некоторые предупреждения при импорте savReaderWriter, если они недоступны. Не огромная проблема сегодня, но это может быть проблемой в будущем, поскольку IBM продолжает обновлять модули ввода-вывода SPSS для новых форматов SPSS (они уже находятся в версии 21 или 22, если память выступающий.)

2 Я решил использовать R в качестве посредника. Используя rpy2, я настроил простую функцию для чтения файла в фрейм данных R и вывода его снова в виде CSV-файла, который я впоследствии импортирую в python. Это немного Руб-Голдберг, но это работает. Конечно, для этого требуется R, который также может быть проблемой для установки в вашей среде (и имеет разные двоичные файлы для разных платформ).


Гретель утверждает, что импортирует SPSS и экспортирует в различных форматах, как и R статистический набор. Я никогда не имел дело с данными SPSS, поэтому не могу говорить об их относительных достоинствах.


вы можете заставить Python сделать внешний вызов spssread, скрипт Perl, который выводит содержимое файлов SPSS так, как вы хотите.


чтобы быть ясным, драйвер SPSS ODBC не требует установки SPSS.


может быть, это будет полезно для кого-то:

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

удачи!

Михаль