【问题标题】:How to export DataFrame to csv without index using rpy2?如何使用 rpy2 将 DataFrame 导出到没有索引的 csv?
【发布时间】:2016-02-24 17:46:43
【问题描述】:

使用 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)?

【问题讨论】:

    标签: python r csv rpy2


    【解决方案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)
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • utils_package.write_csv(dataframe, save_path, row_names=False) @Igautier 不起作用。这是你的意思吗?我收到错误:“未使用的参数(row_names = FALSE)”
      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 2021-11-13
      • 2012-12-17
      • 2015-12-08
      • 2019-04-12
      • 1970-01-01
      • 2014-06-20
      • 2020-08-05
      相关资源
      最近更新 更多