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

How to export DataFrame to csv without index using 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)?

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

中提取的

**{'row.names': True} 应该可以。

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

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

在 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)