2010-09-03 44 views
6

Có cách nào để nhập tập dữ liệu SPSS vào Python, tốt nhất là định dạng tái định dạng NumPy không? Tôi đã nhìn xung quanh nhưng không thể tìm thấy câu trả lời nào.Nhập dữ liệu SPSS vào Python

Joon

Trả lời

2

tuyên bố nhập khẩu SPSS và xuất khẩu trong một loạt các định dạng, cũng như các R statistical suite. Tôi chưa bao giờ xử lý dữ liệu SPSS vì vậy không thể nói lên thành tích tương đối của họ.

3

SPSS có tích hợp rộng rãi với Python, nhưng điều đó có nghĩa là được sử dụng với SPSS (hiện được gọi là Thống kê SPSS của IBM). Có một trình điều khiển SPSS ODBC có thể được sử dụng với hỗ trợ Python ODBC để đọc một tệp sav.

+0

Hoặc bạn chỉ có thể lưu nó ở bất kỳ định dạng nào bạn thích bằng cách sử dụng python từ bên trong SPSS, tôi giả sử? Cả hai giải pháp đều yêu cầu ‘joon’ có quyền truy cập SPSS (mặc dù AFAIK khá đắt). – JanC

1

Để rõ ràng, trình điều khiển SPSS ODBC không yêu cầu cài đặt SPSS.

1

Bạn có thể có Python thực hiện cuộc gọi bên ngoài để spssread, một kịch bản Perl rằng kết quả đầu ra nội dung của file SPSS theo cách bạn muốn.

3

Lựa chọn 1 Như rkbarney chỉ ra, đó là Python savReaderWriter sẵn thông qua pypi. Tôi đã gặp hai vấn đề:

  1. Nó dựa vào rất nhiều thư viện bổ sung ngoài triển khai dường như tinh khiết-python. Các tệp SPSS được đọc và viết trong hầu hết các trường hợp bởi các mô-đun I/O SPSS do IBM cung cấp. Các mô-đun này khác nhau theo nền tảng và trong kinh nghiệm của tôi "pip install savReaderWriter" không khiến chúng chạy ra khỏi hộp (trên OS X).
  2. Phát triển trên savReaderWriter là, trong khi không chết, ít được cập nhật hơn người ta có thể hy vọng. Điều này làm phức tạp vấn đề đầu tiên. Nó dựa trên một số gói không được chấp nhận để tăng tốc độ và đưa ra một số cảnh báo bất cứ khi nào bạn nhập savReaderWriter nếu chúng không có sẵn. Không phải là một vấn đề lớn ngày hôm nay nhưng nó có thể gặp rắc rối trong tương lai khi IBM tiếp tục cập nhật các mô-đun I/O SPSS để xử lý các định dạng SPSS mới (chúng đang ở phiên bản 21 hoặc 22 nếu bộ nhớ phục vụ).

Tùy chọn 2 Tôi đã chọn sử dụng R làm người trung gian. Sử dụng rpy2, tôi thiết lập một hàm đơn giản để đọc tệp vào khung dữ liệu R và xuất nó lại thành tệp CSV mà sau đó tôi nhập vào python. Đó là một chút rube-goldberg nhưng nó hoạt động. Tất nhiên, điều này đòi hỏi R cũng có thể là một rắc rối để cài đặt trong môi trường của bạn (và có các tệp nhị phân khác nhau cho các nền tảng khác nhau).

+0

John, bạn sẽ rất tử tế khi đăng bài (trong một GitHub gist hoặc tại pastebin.com) mã trong phương pháp dựa trên rpy2 của bạn? Tôi đang đấu tranh với vấn đề này http://stackoverflow.com/q/36287936/1389110 và cách tiếp cận của bạn có thể hữu ích. – Pyderman

Các vấn đề liên quan