我希望通过Python将许多.CSV文件转换为.DTA文件的过程自动化。.DTA文件是由Statistics语言处理的文件类型。
然而,我一直未能找到一条路去做这件事。
R语言有写(.dta),它允许将R中的dataFrame转换为.dta文件,并且有一个通过RPy从RPy到R语言的端口,但我不知道如何使用RPy访问R中的写(.dta)函数。
有什么想法吗?
发布于 2013-10-10 13:25:08
您需要rpy2和安装在R中的foreign包,方法是启动R并键入install.packages("foreign")。然后,您可以退出R并返回Python。
然后是这个:
import rpy2.robjects as robjects
robjects.r("require(foreign)")
robjects.r('x=read.csv("test.csv")')
robjects.r('write.dta(x,"test.dta")')如果需要,可以从Python变量构造传递给robjects.r的字符串,如下所示:
robjects.r('x=read.csv("%s")' % fileName)发布于 2014-04-15 09:00:58
(从我对前一个问题的回答复制)
熊猫 DataFrame对象现在有一个"to_stata“方法。所以你可以举个例子
import pandas as pd
df = pd.read_stata('my_data_in.dta')
df.to_stata('my_data_out.dta')免责声明:第一步非常慢(在我的测试中,读取51 MB的dta (也见这个问题)大约1分钟),第二步生成的文件可能比原始文件大得多(在我的测试中,大小从51 MB到111 MB)。Spacedman的回答看上去可能不那么优雅,但可能更有效率。
https://stackoverflow.com/questions/19295832
复制相似问题