如何使用rpy2将DataFrame导出到没有索引的csv?

时间:2016-02-24 17:46:43

标签: python r csv rpy2

如何在使用rpy2保存数据框时删除csv索引?下面是它在R中的完成方式,以及我的尝试python:

R代码:

write.csv(dataframe, save_path, row.names = FALSE)

Python代码:

from rpy2.robjects.packages import importr
utils_package = importr("utils")  # import utils package from R
utils_package.write_csv(dataframe, save_path)  # what to add to remove the row names(i.e., index)?

2 个答案:

答案 0 :(得分:1)

在R中,write.csv()实际上是更通用的write.table()函数的包装器,其中前者具有预先设置的参数,例如逗号分隔符。考虑使用Python中更通用的函数,指定row_names - 当然仍然使用逗号分隔符。以下包括一些备选方案:

# USING WRITE.TABLE()
utils_package.write_table(xmldf, save_path, sep=",", row_names=False)

# INCLUDING NON-DEFAULT ARGUMENTS
utils_package.write_table(x=xmldf, file=save_path, sep=",", row_names=False)

# INCLUDING ALL ARGUMENTS
utils_package.write_table(xmldf, save_path, False, True, ",", "\r", "NA", ".", False)

或者,可以使用ro.r()对象而无需导入基础包:

import rpy2.robjects as ro

output = ro.r['write.table'](x=xmldf, file=save_path, sep=",", row_names=False)

答案 1 :(得分:0)

row_names=True工作...如果在R代码中的函数签名中明确定义了命名参数。不幸的是,它是从省略号...中获取的。

**{'row.names': True}应该有用。

文档中的更多内容:http://rpy2.readthedocs.org/en/version_2.7.x/robjects_rpackages.html

注意:您还可以在ipython中尝试动态生成的文档字符串(?utils_package.write_csv)。