首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.CSV文件转换为.DTA文件

将.CSV文件转换为.DTA文件
EN

Stack Overflow用户
提问于 2013-10-10 12:32:07
回答 2查看 5.1K关注 0票数 1

我希望通过Python将许多.CSV文件转换为.DTA文件的过程自动化。.DTA文件是由Statistics语言处理的文件类型。

然而,我一直未能找到一条路去做这件事。

R语言有写(.dta),它允许将R中的dataFrame转换为.dta文件,并且有一个通过RPy从RPy到R语言的端口,但我不知道如何使用RPy访问R中的写(.dta)函数。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-10 13:25:08

您需要rpy2和安装在R中的foreign包,方法是启动R并键入install.packages("foreign")。然后,您可以退出R并返回Python。

然后是这个:

代码语言:javascript
复制
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的字符串,如下所示:

代码语言:javascript
复制
robjects.r('x=read.csv("%s")' % fileName)
票数 4
EN

Stack Overflow用户

发布于 2014-04-15 09:00:58

(从我对前一个问题的回答复制)

熊猫 DataFrame对象现在有一个"to_stata“方法。所以你可以举个例子

代码语言:javascript
复制
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的回答看上去可能不那么优雅,但可能更有效率。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19295832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档