Pandas DataframeからRにpickleファイル(.pkl)を読み込む簡単な方法はありますか?
1つの可能性は、CSVにエクスポートしてRにCSVを読み取らせることですが、データフレームがかなり大きいため、これは非常に面倒に思えます。そうする簡単な方法はありますか?
ありがとう!
pythonにpickleをロードし、pythonパッケージ_rpy2
_(または同様の)を介してRにエクスポートできます。そうすると、データはpythonにリンクされたRセッションに存在します。次に行うことは、そのセッションを使用してRを呼び出し、RDSをファイルまたはRAMディスクに保存することです。その後、RStudioでそのファイルを読み戻すことができます。Rからpythonコマンドをトリガーする方法については、RパッケージrJython
およびrPython
を参照してください。
あるいは、単純なpythonスクリプトを記述してPythonにデータをロードし(おそらく上記のRパッケージのいずれかを使用して)、フォーマットされたデータストリームをstdoutに書き込むことができます。その場合、スクリプトへのシステム全体の呼び出し(ピクルを指定する引数を含む)は、Rパッケージ_data.table
_のfread
への引数として使用できます。あるいは、標準関数を維持する場合は、system(..., intern=TRUE)
と_read.table
_の組み合わせを使用できます。
いつものように、この特定の猫の皮を剥ぐ方法はたくさんあります。基本的な手順は次のとおりです。
fread
を介してオブジェクトをエクスポートします)fread
を使用している場合は既に完了しています)。Reticulate は、コメントでrussellpierceが示唆しているように、非常に簡単で非常に滑らかでした。
install.packages('reticulate')
その後、ドキュメントに記載されている例からPythonこのようなスクリプトを作成しました。
Pythonファイル:
import pandas as pd
def read_pickle_file(file):
pickle_data = pd.read_pickle(file)
return pickle_data
そして、私のRファイルは次のようになりました:
require("reticulate")
source_python("pickle_reader.py")
pickle_data <- read_pickle_file("C:/tsa/dataset.pickle")
これにより、以前にpickle形式で保存されたRのすべてのデータが得られました。