Python pandasデータフレームをRのデータフレームに変換します。この問題のライブラリがいくつか見つかりました。
http://pandas.pydata.org/pandas-docs/stable/r_interface.html
これはrpy2です
しかし、それをRに保存または転送する方法が見つかりませんでした。
まずは「to_csv」を試してみました
df_R = com.convert_to_r_dataframe(df_total)
df_R.to_csv(direc+"/qap/detail_summary_R/"+"distance_"+str(gp_num)+".csv",sep = ",")
しかし、それは私にエラーを与えます
"AttributeError: 'DataFrame' object has no attribute 'to_csv' "
だから私はそれがあったデータ型を見ようとしました
<class 'rpy2.robjects.vectors.DataFrame'>
このタイプのオブジェクトをcsvファイルに保存したり、Rに転送したりするにはどうすればよいですか?
最近のドキュメント https://rpy2.github.io/doc/v3.2.x/html/generated_rst/pandas.html には、pandas
との対話に関するセクションがあります。
それ以外の場合、タイプrpy2.robjects.vectors.DataFrame
のオブジェクトのメソッドはto_csvfile
ではなくto_csv
です。
https://rpy2.github.io/doc/v3.2.x/html/vector.html#rpy2.robjects.vectors.DataFrame.to_csvfile
PythonとRの間でデータを渡したい場合は、CSVファイルの書き込みと読み取りよりも効率的な方法があります。変換システムを試してください。
from rpy2.robjects import pandas2ri
pandas2ri.activate()
from rpy2.robjects.packages import importr
base = importr('base')
# call an R function on a Pandas DataFrame
base.summary(my_pandas_dataframe)
標準のテキストベースの形式(csv)が遅すぎるかかさばる場合は、 Apache Arrow に基づいて構築されたシリアル化形式である feather をお勧めします。これは、RStudio/ggplot2/etc(Hadley Wickham)およびpandas(Wes McKinney)の作成者によって、パフォーマンスとPythonとR(Python $ ===)の間の相互運用性のために明示的に開発されました。 ここ を参照してください。
pandas verson 0.20.0 +、pip install feather-format
が必要です。その後、to_feather
/read_feather
操作をto_csv
/read_csv
のドロップイン置換として使用できます。
df_R.to_feather('filename.feather')
df_R = pd.read_feather('filename.feather')
R
に相当するもの(パッケージfeather
を使用)は次のとおりです。
df <- feather::read_feather('filename.feather')
feather::write_feather(df, 'filename.feather')
いくつかのマイナーな調整(たとえば、カスタムDataFrameインデックスをフェザーに保存できないため、最初にdf.reset_index()
を呼び出す必要があります)に加えて、これはcsv
、pickle
などの迅速で簡単なドロップイン置換です。 。
Data.frameを取得したら、write.table
または後者のラッパーの1つ(たとえば、writee.csv
)を使用して保存できます。
import rpy2.robjects as robjects
## get a reference to the R function
write_csv = robjects.r('write.csv')
## save
write_csv(df_R,'filename.csv')