在python中导入rds文件以作为数据帧读取

时间:2019-02-27 11:15:32

标签: python

我是python的新手。我已经用R语言编写了脚本,并做了很多分析。但是现在我发现应该将其转换为python。无论如何,如果可能,我将rds文件导入python时遇到问题。我遵循了this post。但是,它会导致此错误

import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
readRDS = robjects.r['readRDS']
df = readRDS('clus_resf.rds')
df = pandas2ri.ri2py(df)
raise TypeError(msg.format(categories))

TypeError: Parameter 'categories' must be list-like, was <rpy2.rinterface.StrSexpVector - Python:0x2b45d8823e40 / R:0x2b451e7c6d80>

您可以在this link上找到我的rds文件 非常感谢,

2 个答案:

答案 0 :(得分:1)

当某些版本的rpy2和pandas结合在一起时,这似乎是一个错误。用例如

更新它们
pip install --upgrade rpy2 pandas

并且错误应该消失。

答案 1 :(得分:0)

使用pyreadr软件包看起来更容易,安装

pip install pyreadr

用法:

import pyreadr

result = pyreadr.read_r('test_data/basic/one.Rds')

# done! let's see what we got
print(result.keys()) # let's check what objects we got: there is only None
df1 = result[None] # extract the pandas data frame for the only object available

使用该软件包,您还可以从python编写.rds文件。