【问题标题】:rpy2 load multiple DataFrames from a .RData file into pandasrpy2 将 .RData 文件中的多个 DataFrames 加载到 pandas
【发布时间】:2023-10-06 09:53:01
【问题描述】:

我在系统中有一个.RData 文件,其中包含三个对象 - 全部为 R-DataFrames。我想将它们作为 pandas DataFrames 加载到 python 中。我得到的问题是,对象不是通过rpy 加载的,只有它们的名称:

from rpy2.robjects import r
from rpy2.robjects import pandas2ri
import pandas as pd
file="./normalization.RData"
rf = r.load(file)
rf

<StrVector - Python:0x7fdf1a28cb08 / R:0x4ce82c8>
['df1', 'df2', 'df3']

f1[2]

'annodf'
In [11]:

要么只加载名称,要么我不明白如何从 RData 访问/转换 DF。

有人能解决这个问题吗?

【问题讨论】:

    标签: python r dataframe rpy2


    【解决方案1】:

    好的 - 我刚刚意识到对象并没有真正加载到 rf 变量中,而是加载到代表 R 环境的 rpy2.rojbects.r 中......这很棘手!

    因此以下工作:

    import pandas as pd
    from rpy2.robjects import r
    import rpy2.robjects.pandas2ri as pandas2ri
    
    
    #load into the env
    file="./normalization.RData"
    rf=r['load'](file)
    rf
    
    <StrVector - Python:0x7fdf1a28cb08 / R:0x4ce82c8>
    ['df1', 'df2', 'df3']
    
    #acces file in env and convert
    df2=pandas2ri.ri2py_dataframe(r['df2'])
    type(df2)
    
    pandas.core.frame.DataFrame
    

    【讨论】:

    • 直接使用您的答案时出现以下错误:AttributeError: module 'rpy2.robjects.pandas2ri' has no attribute 'ri2py_dataframe'
    最近更新 更多