Me pregunto si alguien sabe un paquete de Python que le permite guardar matrices numeradas/recarrays en el formato .dta
del software de análisis de datos estadísticos Stata. Esto realmente aceleraría unos pocos pasos en un sistema que tengo.Guardar archivos .dta en python
Respuesta
pandas Los objetos DataFrame ahora tienen el método "to_stata". Por lo que puede hacer por ejemplo
import pandas as pd
df = pd.read_stata('my_data_in.dta')
df.to_stata('my_data_out.dta')
RENUNCIA: el primer paso es bastante lento (en mi prueba, alrededor de 1 minuto para que la lectura de un DTA 51 MB - ver también this question), y la segunda produce un fichero del cual puede ser mucho más grande que el original (en mi prueba, el tamaño va de 51 MB a 111 MB). This answer puede parecer menos elegante, pero probablemente sea más eficiente.
El único Python library for STATA interoperability que pude encontrar simplemente proporciona acceso de solo lectura a los archivos .dta
. Sin embargo, la biblioteca R foreign
proporciona una función write.dta
, y RPy proporciona una interfaz de Python a R. Quizás la combinación de estas herramientas pueda ayudarlo.
El paquete scikits.statsmodels incluye un lector para archivos de datos Stata, que se basa en parte en PyDTA como lo señala @Sven. En particular, genfromdta()
devolverá un ndarray
, p. Ej. de Python 2.7/statsmodels 0.3.1:
>>> import scikits.statsmodels.api as sm
>>> arr = sm.iolib.genfromdta('/Applications/Stata12/auto.dta')
>>> type(arr)
<type 'numpy.ndarray'>
La función savetxt()
se puede utilizar a su vez para salvar una matriz como un archivo de texto, que puede ser importado en Stata. Por ejemplo, podemos exportar lo anterior como
>>> sm.iolib.savetxt('auto.txt', arr, fmt='%2s', delimiter=",")
y leerlo en Stata sin un archivo de diccionario de la siguiente manera:
. insheet using auto.txt, clear
creo que un lector *.dta
debe añadirse en un futuro próximo.
- 1. Guardar archivos en cacao
- 2. Guardar archivos XML usando ElementTree
- 3. Python Guardar como archivo
- 4. Guardar imágenes: ¿archivos o blobs?
- 5. guardar archivos de imagen en C#
- 6. ¿Cómo guardar archivos en un iPhone?
- 7. Descargar y guardar archivos en JMeter
- 8. Guardar archivos públicos en el almacenamiento interno
- 9. Guardar archivos abiertos (sesión) en NetBeans
- 10. Cómo guardar archivos en la tarjeta SD
- 11. Convertir cadena en base64 en imagen y guardar en sistema de archivos en Python
- 12. ¿Cómo guardar datos con Python?
- 13. fácil guardar/cargar datos en python
- 14. python guardar en la memoria sqlite
- 15. guardar Excepciones al archivo en python
- 16. ¿Guardar el objeto KDTree en Python?
- 17. Lectura solo en una parte de un archivo Stata .DTA en R
- 18. Generación de película desde python sin guardar fotogramas individuales en archivos
- 19. Convierte el archivo Stata .dta a CSV sin el software Stata
- 20. Frasco: IOError al guardar archivos cargados
- 21. ¿Dónde guardar los archivos Delphi DCU?
- 22. Guardar archivos Word DOCX como PDF
- 23. forma más segura de guardar archivos subidos
- 24. ¿Cómo guardar todos los archivos en pestañas en Vim?
- 25. ¿Cómo puedo guardar objetos en archivos en Node.js?
- 26. python dropbox api - ¿Guardar archivo token?
- 27. cómo guardar/clase que lea en su totalidad en Python
- 28. Guardar Python Objetos en escabeche en MySQL db
- 29. copiar varios archivos en python
- 30. Analizando archivos mbox en Python
¿Qué se supone exactamente que es un archivo .dta? –
Un archivo .dta es un formato de archivo asociado a datos, utilizado principalmente para el programa informático estadístico STATA. No sé lo suficiente sobre el tipo de archivo para elaborar, pero podría haber más detalles aquí: http://filext.com/file-extension/DTA – mike
Parece que tiene la idea errónea de que todos los archivos tienen la extensión '.dta' tener un formato común. Esto no es verdad. El formato de archivo que le interesa es específico de STATA y no parece usarse en ningún otro software. Aquí está la [documentación del formato] (http://www.stata.com/help.cgi?dta), y dudo mucho que exista una biblioteca que pueda escribir este formato. –