Python Pandas 到 R 数据框

标签 python r pandas rpy2

我要将 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-替代 csvpickle

编辑:今天(2022 年 6 月) Feather 的发展转移到了箭头上。这意味着不要使用 feather 库,而是使用 arrow

library(arrow)
df <- arrow::read_feather('filename.feather')

关于Python Pandas 到 R 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24094476/

相关文章:

r - 变异 : chose all rows except the current one in a grouped df (dplyr)

r - 根据列条件对数据框进行排序

python - 从多类型嵌套列表中制作平面列表

python - Stata 与 R/Python 中数据帧的线性代数

python - 从列表中删除字符串

python - 如何对列表进行子集化,然后截断其元素(Pandas)

python - pandas 不同列中唯一值的频率

具有函数和列相等值的 Python Pandas

r - 识别和计算多列中的重复值

python - Plotly:如何从数据框中绘制桑基图?