2011-09-21 12 views
11

में .dta फ़ाइलों को सहेजें, मुझे आश्चर्य है कि अगर कोई पाइथन पैकेज जानता है जो आपको सांख्यिकीय डेटा विश्लेषण सॉफ़्टवेयर स्टाटा के .dta प्रारूप में numpy arrays/recarrays को सहेजने की अनुमति देता है। यह वास्तव में मेरे पास एक प्रणाली में कुछ कदम उठाएगा।पायथन

+0

एक .dta फ़ाइल वास्तव में क्या है? –

+0

ए। डीटीए फ़ाइल डेटा से जुड़ा एक फ़ाइल प्रारूप है, मुख्य रूप से सांख्यिकीय कंप्यूटिंग प्रोग्राम स्टेटा के लिए उपयोग किया जाता है। मुझे विस्तृत करने के लिए फ़ाइल प्रकार के बारे में पर्याप्त जानकारी नहीं है, लेकिन यहां अधिक जानकारी हो सकती है: http://filext.com/file-extension/DTA – mike

+1

आपको लगता है कि यह गलत धारणा है कि एक्सटेंशन '.dta' एक आम प्रारूप है। यह सच नहीं है। जिस फ़ाइल प्रारूप में आप रुचि रखते हैं वह STATA के लिए विशिष्ट है और किसी अन्य सॉफ़्टवेयर में उपयोग नहीं किया जा रहा है। यहां [प्रारूप का दस्तावेज़ीकरण] है (http://www.stata.com/help.cgi?dta), और मुझे बहुत संदेह है कि एक पुस्तकालय इस प्रारूप को लिखने में सक्षम है। –

उत्तर

2

pandas डेटाफ्रेम ऑब्जेक्ट्स में अब "to_stata" विधि है। तो अगर आप उदाहरण के लिए कर सकते हैं

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

अस्वीकरण: पहला कदम (51 एमबी डीटीए पढ़ने के लिए 1 मिनट के आसपास, अपने परीक्षण में - भी this question देखें) काफी धीमी है, और दूसरा एक फ़ाइल पैदा करता है जो मूल से बड़ा रास्ता हो सकता है (मेरे परीक्षण में, आकार 51 एमबी से 111 एमबी तक जाता है)। This answer कम सुरुचिपूर्ण लग सकता है, लेकिन यह शायद अधिक कुशल है।

6

केवल Python library for STATA interoperability मैं केवल .dta फ़ाइलों को केवल पढ़ने के लिए पहुंच प्रदान करता हूं। आर foreign लाइब्रेरी हालांकि एक समारोह write.dta प्रदान करता है, और RPy आर के लिए पाइथन इंटरफेस प्रदान करता है। शायद इन उपकरणों का संयोजन आपकी मदद कर सकता है।

8

scikits.statsmodels पैकेज में स्टेट डेटा फ़ाइलों के लिए एक पाठक शामिल है, जो @ एसवीएन द्वारा बताए गए पीईडीटीए पर निर्भर करता है। विशेष रूप से, genfromdta()ndarray लौटाएगा, उदाहरण के लिए अजगर 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'> 

savetxt() समारोह एक पाठ फ़ाइल है, जो Stata में आयात किया जा सकता के रूप में एक सरणी को बचाने के लिए बदले में इस्तेमाल किया जा सकता। उदाहरण के लिए, हम ऊपर के रूप में

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

Stata में एक शब्दकोश फ़ाइल के बिना इस प्रकार के रूप में निर्यात और यह पढ़ सकते हैं:

. insheet using auto.txt, clear 

मेरा मानना ​​है कि एक *.dta पाठक निकट भविष्य में जोड़ा जाना चाहिए।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^