Existe-t-il un moyen facile de lire des fichiers de pickle (.pkl) de Pandas Dataframe dans R?
Une possibilité consiste à exporter au format CSV et à faire lire le fichier CSV par R, mais cela me semble vraiment lourd car mes trames de données sont plutôt volumineuses. Existe-t-il un moyen plus simple de le faire?
Merci!
Vous pouvez charger le cornichon dans python puis l'exporter vers R via le python rpy2
(Ou similaire). Une fois que vous avez fait, vos données existeront dans une session R liée à python. Je soupçonne que ce que vous voudriez faire ensuite serait d'utiliser cette session pour appeler R et saveRDS dans un fichier ou RAM = disk. Ensuite, dans RStudio, vous pouvez relire ce fichier. Consultez les packages R rJython
et rPython
pour savoir comment déclencher le python commandes de R.
Alternativement, vous pouvez écrire un simple script python pour charger vos données dans Python (probablement en utilisant l'un des packages R mentionnés ci-dessus)) et écrire un flux de données formaté à stdout. Ensuite, cet appel système complet au script (y compris l'argument qui spécifie votre cornichon) peut être utilisé comme argument pour fread
dans le package R data.table
. Alternativement, si vous le souhaitez garder les fonctions standard, vous pouvez utiliser la combinaison de system(..., intern=TRUE)
et read.table
.
Comme d'habitude, il existe/plusieurs/façons de dépouiller ce chat en particulier. Les étapes de base sont les suivantes:
fread
)fread
alors vous avez déjà terminé).réticulé était assez facile et super fluide comme suggéré par russellpierce dans les commentaires.
install.packages('reticulate')
Après quoi j'ai créé un script Python comme celui-ci à partir d'exemples donnés dans leur documentation.
Fichier Python:
import pandas as pd
def read_pickle_file(file):
pickle_data = pd.read_pickle(file)
return pickle_data
Et puis mon fichier R ressemblait à:
require("reticulate")
source_python("pickle_reader.py")
pickle_data <- read_pickle_file("C:/tsa/dataset.pickle")
Cela m'a donné toutes mes données dans R stockées précédemment au format pickle.