Lesen einer Beizdatei (PANDAS Python Data Frame) in R

9

Gibt es eine einfache Möglichkeit, Pickle-Dateien (.pkl) aus Pandas Dataframe in R zu lesen?

Eine Möglichkeit besteht darin, nach CSV zu exportieren und R die CSV-Datei lesen zu lassen, aber das erscheint mir sehr umständlich, weil meine Datenrahmen ziemlich groß sind. Gibt es einen einfacheren Weg?

Danke!

    
Vincent 01.02.2016, 00:13
quelle

1 Antwort

5

Sie könnten die Beize in Python laden und dann über das Python-Paket rpy2 (oder ähnlich) nach R exportieren. Sobald Sie dies getan haben, sind Ihre Daten in einer R-Sitzung vorhanden, die mit Python verknüpft ist. Ich vermute, dass das, was Sie als nächstes tun möchten, wäre, diese Sitzung zu verwenden, um R und saveRDS in einer Datei oder einem RAM-Datenträger aufzurufen. Dann können Sie in RStudio diese Datei wieder einlesen. Sehen Sie sich die R-Pakete rJython und rPython an, um Wege zu finden, wie Sie die Python-Befehle von R auslösen können.

Alternativ können Sie ein einfaches Python-Skript schreiben, um Ihre Daten in Python zu laden (wahrscheinlich unter Verwendung eines der oben erwähnten R-Pakete) und einen formatierten Datenstrom in stdout schreiben. Dann kann der gesamte Systemaufruf an das Skript (einschließlich des Arguments, das Ihre Beize spezifiziert) als Argument für fread im R-Paket data.table verwendet werden. Wenn Sie die Standardfunktionen beibehalten möchten, können Sie auch die Kombination system(..., intern=TRUE) und read.table verwenden.

Wie immer gibt es / viele / Möglichkeiten, diese bestimmte Katze zu häuten. Die grundlegenden Schritte sind:

  1. Laden Sie die Daten in Python
  2. Geben Sie die Daten an R aus (z. B. Exportieren des Objekts über rpy2 oder Schreiben von formatiertem Text in stdout mit R, um es am anderen Ende zu empfangen)
  3. Serialisieren Sie die ausgedrückten Daten in R zu einer internen Datendarstellung (z. B. Exportieren des Objekts über rpy2 oder fread )
  4. (optional) Machen Sie die Daten in dieser Sitzung von R für eine andere R-Sitzung zugänglich (dh den Schritt, um die Schleife mit rpy2 zu schließen, oder wenn Sie fread verwendet haben, dann sind Sie bereits fertig) / li>
russellpierce 01.02.2016, 00:20
quelle

Tags und Links