tablas para manejo leer importar funciones datos crear con archivos archivo abrir python r rdata

para - Cargando archivos.RData en Python



leer archivos csv en python (4)

Usuarios de portátiles Jupyter

Si está utilizando la notebook Jupyter, necesita hacer 2 pasos:

Paso 1: vaya a http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2 y descargue la interfaz de Python al lenguaje R (incrustado R) en mi caso rpy2-2.8.6-cp36-cp36m-win_amd64.whl

Coloque este archivo en el mismo directorio de trabajo en el que se encuentra actualmente.

Paso 2: Ve a tu cuaderno Jupyter y escribe los siguientes comandos

# This is to install rpy2 library in Anaconda !pip install rpy2-2.8.6-cp36-cp36m-win_amd64.whl

y entonces

# This is important if you will be using rpy2 import os os.environ[''R_USER''] = ''D:/Anaconda3/Lib/site-packages/rpy2''

y entonces

import rpy2.robjects as robjects from rpy2.robjects import pandas2ri pandas2ri.activate()

Esto debería permitirte usar las funciones R en python. Ahora tienes que importar el readRDS como sigue

readRDS = robjects.r[''readRDS''] df = readRDS(''Data1.rds'') df = pandas2ri.ri2py(df) df.head()

¡Felicidades! Ahora tienes el Dataframe que querías

Sin embargo, le aconsejo que lo guarde en un archivo pickle para su uso posterior en Python como

df.to_pickle(''Data1'')

Así que la próxima vez puedes usarlo simplemente

df1=pd.read_pickle(''Data1'')

Tengo un montón de archivos de series de tiempo .RData y me gustaría cargarlos directamente en Python sin antes convertirlos a otra extensión (como .csv). ¿Alguna idea sobre la mejor manera de lograr esto?


Como alternativa para aquellos que prefieren no tener que instalar R para realizar esta tarea (r2py lo requiere), hay un nuevo paquete "pyreadr" que permite leer archivos RData y Rds directamente en python sin dependencias.

Es un envoltorio alrededor de la biblioteca librdata C, por lo que es muy rápido.

Puedes instalarlo fácilmente con pip:

pip install pyreadr

Como ejemplo harías:

import pyreadr result = pyreadr.read_r(''/path/to/file.RData'') # also works for Rds # done! let''s see what we got # result is a dictionary where keys are the name of objects and the values python # objects print(result.keys()) # let''s check what objects we got df1 = result["df1"] # extract the pandas data frame for object df1

El repositorio está aquí: https://github.com/ofajardo/pyreadr

Descargo de responsabilidad: Soy el desarrollador de este paquete.


Hay una biblioteca de terceros llamada rpy , y puede usar esta biblioteca para cargar archivos .RData . Puede obtener esto a través de un pip install pip instally rpy hará el truco, si no tiene rpy , le sugiero que eche un vistazo a cómo instalarlo. De lo contrario, puedes simplemente hacer:

from rpy import * r.load("file name here")

EDITAR:

Parece que soy un poco de vieja escuela, s rpy2 ahora, así que puedes usar eso.


La gente pregunta este tipo de cosas en la lista de R-help y R-dev y la respuesta habitual es que el código es la documentación para el formato de archivo .RData . Así que cualquier otra implementación en cualquier otro lenguaje es difícil ++ .

Creo que la única forma razonable es instalar RPy2 y usar la función de load de R a partir de eso, convirtiéndolo en objetos de Python apropiados a medida que avanzas. El archivo .RData puede contener objetos estructurados así como tablas simples, así que .RData cuidado.

Linky: http://rpy.sourceforge.net/rpy2/doc-2.4/html/

Quicky:

>>> import rpy2.robjects as robjects >>> robjects.r[''load''](".RData")

los objetos ahora están cargados en el espacio de trabajo de R.

>>> robjects.r[''y''] <FloatVector - Python:0x24c6560 / R:0xf1f0e0> [0.763684, 0.086314, 0.617097, ..., 0.443631, 0.281865, 0.839317]

Es un simple escalar, d es un marco de datos, puedo subconjuntar para obtener columnas:

>>> robjects.r[''d''][0] <IntVector - Python:0x24c9248 / R:0xbbc6c0> [ 1, 2, 3, ..., 8, 9, 10] >>> robjects.r[''d''][1] <FloatVector - Python:0x24c93b0 / R:0xf1f230> [0.975648, 0.597036, 0.254840, ..., 0.891975, 0.824879, 0.870136]