Загрузка файла .rds в Pandas
Я загрузил файл с форматом .rds, как загрузить его с помощью Pandas? Предполагается, что это R файл, но я не смог найти информацию о том, как его загрузить.
Ответы
Ответ 1
Вы можете использовать интерфейс rpy2 для Pandas следующим образом:
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
readRDS = robjects.r['readRDS']
df = readRDS('my_file.rds')
df = pandas2ri.ri2py(df)
# do something with the dataframe
Ответ 2
Если вы предпочитаете не устанавливать R (это требуется для rpy2), существует новый пакет "pyreadr", позволяющий очень легко читать файлы Rds и RData.
Это обертка вокруг библиотеки librdata, поэтому она очень быстрая.
Вы можете легко установить его с помощью pip:
pip install pyreadr
Тогда вы можете прочитать ваш файл RDS:
import pyreadr
result = pyreadr.read_r('/path/to/file.Rds') # also works for RData
# done!
# result is a dictionary where keys are the name of objects and the values python
# objects. In the case of Rds there is only one object with None as key
df = result[None] # extract the pandas data frame
Репо здесь: https://github.com/ofajardo/pyreadr
Отказ от ответственности: я разработчик этого пакета.
Ответ 3
Чтобы продолжить ответ @mgalardini, в более новых версиях rpy2 (версия 3.0.4) изменился метод, который преобразует R-фрейм данных в pandas-фрейм данных:
>>> rpy2.__version__
'3.0.4'
>>> import rpy2.robjects as robjects
>>> from rpy2.robjects import pandas2ri
>>> readRDS = robjects.r['readRDS']
>>> df = readRDS('my_file.rds')
>>> df = pandas2ri.rpy2py_dataframe(df)