2011-09-21 6 views
11

통계 데이터 분석 소프트웨어 Stata의 .dta 형식으로 numpy 배열/재 배열을 저장할 수있는 파이썬 패키지를 아는 사람이 있는지 궁금합니다. 이것은 내가 가지고있는 시스템에서 몇 단계의 속도를 향상시킵니다.파이썬에 .dta 파일 저장하기

+0

.dta 파일은 정확히 무엇이되어야합니까? –

+0

.dta 파일은 주로 통계 컴퓨팅 프로그램 STATA에 사용되는 데이터와 관련된 파일 형식입니다. 나는 정교 할 파일 유형에 대해 충분히 알지 못하지만 여기에 더 자세한 내용이있을 수 있습니다 : http://filext.com/file-extension/DTA – mike

+1

확장자가 .dta 인 모든 파일 공통 형식을가집니다. 이것은 사실이 아닙니다. 관심있는 파일 형식은 STATA에만 해당되며 다른 소프트웨어에서는 사용되지 않습니다. 여기에 [형식의 문서화] (http://www.stata.com/help.cgi?dta)가 있으며,이 형식을 쓸 수있는 라이브러리가 존재한다는 것에는 의심의 여지가 있습니다. –

답변

2

pandas 이제 DataFrame 개체에는 "to_stata"메서드가 있습니다. 그래서 당신은 예를 들어 할 수있는

import pandas as pd 
df = pd.read_stata('my_data_in.dta') 
df.to_stata('my_data_out.dta') 

면책 조항 : 첫 번째 단계는 (51 메가 바이트 DTA 읽는 일분 주위에, 내 테스트에서 - 또한 this question 참조) 매우 느린이고, 두 번째는 파일을 생성하는 원래 크기보다 크게 될 수 있습니다 (내 테스트에서 크기는 51MB에서 111MB로 늘어납니다). This answer은 덜 우아 해 보일 수 있지만 더 효율적입니다.

6

유일한 Python library for STATA interoperability은 단지 .dta 개의 파일에 대한 읽기 전용 액세스 만 제공합니다. 그러나 R foreign 라이브러리는 write.dta 기능을 제공하고 RPy은 R에 Python 인터페이스를 제공합니다. 이러한 도구를 조합하면 도움이 될 수도 있습니다.

8

scikits.statsmodels 패키지에는 @Sven이 지적한 PyDTA에 부분적으로 의존하는 Stata 데이터 파일 용 판독기가 포함되어 있습니다. 특히 genfromdta()ndarray을 반환합니다. 파이썬 2.7/0.3.1 statsmodels :

>>> import scikits.statsmodels.api as sm 
>>> arr = sm.iolib.genfromdta('/Applications/Stata12/auto.dta') 
>>> type(arr) 
<type 'numpy.ndarray'> 

savetxt() 기능이 STATA에서 가져올 수있는 텍스트 파일로 배열을 저장할 수 차례 사용할 수 있습니다. 예를 들어, 다음과 같이 우리는 사전 파일없이 STATA에

>>> sm.iolib.savetxt('auto.txt', arr, fmt='%2s', delimiter=",") 

로 위를 내보내고를 읽을 수 있습니다

. insheet using auto.txt, clear 

은 내가 *.dta 독자가 가까운 미래에 추가 될 전망이다.

관련 문제