【问题标题】:rpy2 - how to save dataframe as RData file to disk?rpy2 - 如何将数据帧作为 RData 文件保存到磁盘?
【发布时间】:2017-09-29 00:52:04
【问题描述】:

我想知道如何将 pandas 数据帧保存到 .RData 文件,如何从 pandas 数据帧保存到 RData?我在这里完成了最后一步的所有内容:

import pandas as pd
import rpy2
from rpy2 import robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()

# load RData file
df = pandas2ri.ri2py(robjects.r['get'](robjects.r['load'](path_to_rdata_file)))

.... do some processing to df ...

# save df as RData file
r_df = pandas2ri.py2ri(df)
??????????

如何将 pandas 数据作为.RData 文件保存到磁盘?

【问题讨论】:

    标签: python r rpy2


    【解决方案1】:

    我终于找到答案了,下面是你如何使用 pandas 数据框写入.RData 文件:

    首先将数据帧转换为R数据帧:

    r_data = pandas2ri.py2ri(df)
    

    然后我们必须将数据框分配给“R工作区”中的一个变量:

    robjects.r.assign("my_df", r_data)
    

    最后,我们可以通过名称引用变量,以便调用save 命令:

    robjects.r("save(my_df, file='{}')".format(filename))
    

    如果您想读/写 RData 文件但在 python 中使用 pandas,这里有 2 个辅助函数:

    # read .RData file as a pandas dataframe
    def load_rdata_file(filename):
        r_data = robjects.r['get'](robjects.r['load'](filename))
        df = pandas2ri.ri2py(r_data)
        return df
    
    # write pandas dataframe to an .RData file
    def save_rdata_file(df, filename):
        r_data = pandas2ri.py2ri(df)
        robjects.r.assign("my_df", r_data)
        robjects.r("save(my_df, file='{}')".format(filename))
        os.chmod(filename, 0o777)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多