简体   繁体   English

rpy2 - 如何将数据帧作为RData文件保存到磁盘?

[英]rpy2 - how to save dataframe as RData file to disk?

I am wondering how to save a pandas dataframe to an .RData file, How can I save to an RData from from a pandas dataframe? 我想知道如何将pandas数据帧保存到.RData文件中,如何从pandas数据帧保存到RData? I have everything up to the last step here: 我有一切到这里的最后一步:

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

How can I save the pandas data to disk as an .RData file? 如何将pandas数据作为.RData文件保存到磁盘?

I finally figured out the answer, here is how you write to .RData file using a pandas dataframe: 我终于想出了答案,这里是你如何使用pandas dataframe写入.RData文件:

First convert dataframe to R dataframe: 首先将数据帧转换为R数据帧:

r_data = pandas2ri.py2ri(df)

Then we have to assign the dataframe to a variable in the "R workspace": 然后我们必须将数据帧分配给“R工作区”中的变量:

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

Finally, we can reference the variable by name in order to call the save command: 最后,我们可以通过名称引用变量来调用save命令:

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

Here are 2 helper functions if you want to read/write RData files but work in python with pandas: 如果你想读/写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) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM