我要将 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?
最佳答案
如果标准的基于文本的格式 (csv) 太慢或太笨重,我建议 feather , 一种基于 Apache Arrow 的序列化格式.它是由 RStudio/ggplot2/etc (Hadley Wickham) 和 pandas (Wes McKinney) 的创建者明确开发的,用于 Python 和 R 之间的性能和互操作性(参见 here )。
你需要pandas verson 0.20.0+,pip install feather-format
,然后你可以使用to_feather
/read_feather
操作作为drop -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')
除了一些小的调整(例如,您不能在 feather 中保存自定义 DataFrame 索引,因此您需要先调用 df.reset_index()
),这是一个快速且简单的 drop-替代 csv
、pickle
等
编辑:今天(2022 年 6 月) Feather 的发展转移到了箭头上。这意味着不要使用 feather
库,而是使用 arrow
。
library(arrow)
df <- arrow::read_feather('filename.feather')
关于Python Pandas 到 R 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24094476/