[英]Can I use rpy2 to save a pandas dataframe to an .Rdata file?
[英]rpy2 load multiple DataFrames from a .RData file into pandas
我在系統中有一個.RData
文件,其中包含三個對象 - 所有 R- DataFrame
。 我想將它們作為 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。
有人有解決方案嗎?
好的 - 我剛剛意識到該對象並沒有真正加載到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'
改變這個:
df2 = pandas2ri.ri2py_dataframe(r['df2'])
對此:
df2 = rpy2.robjects.conversion.rpy2py(r['df2'])
使用的 R 版本:3.6.3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.