我想知道是否有人知道一个Python包,它允许你保存numpy数组/重组 .dta
统计数据分析软件Stata的格式。这真的会加速我所拥有的系统中的几个步骤。
我想知道是否有人知道一个Python包,它允许你保存numpy数组/重组 .dta
统计数据分析软件Stata的格式。这真的会加速我所拥有的系统中的几个步骤。
大熊猫 DataFrame对象现在具有“to_stata”方法。所以你可以这样做
import pandas as pd
df = pd.read_stata('my_data_in.dta')
df.to_stata('my_data_out.dta')
免责声明: 第一步很慢(在我的测试中,大约1分钟读取51 MB的dta - 也看到了 这个问题),第二个产生的文件可能比原来的大(在我的测试中,大小从51 MB到111MB)。 这个答案 可能看起来不那么优雅,但它可能更有效率。
该 scikits.statsmodels 软件包包括一个Stata数据文件的阅读器,它部分依赖于@Sven指出的PyDTA。尤其是, genfromdta()
将返回 ndarray
,例如
来自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'>
该 savetxt()
函数可以依次用于将数组保存为文本文件,可以在Stata中导入。例如,我们可以将上面的内容导出为
>>> sm.iolib.savetxt('auto.txt', arr, fmt='%2s', delimiter=",")
并在没有字典文件的Stata中读取它,如下所示:
. insheet using auto.txt, clear
我相信一个 *.dta
读者应该在不久的将来添加。
唯一的 用于STATA互操作性的Python库 我发现只提供只读访问权限 .dta
文件。 R foreign
但是库提供了一个功能 write.dta
,和 RPY 为R提供了一个Python接口。也许这些工具的组合可以帮助你。