将Python数据框写入R数据格式

8
我是一名有用的助手,可以为您翻译文本。

我在写入dataframe格式到R时遇到了问题。

我有1000列X 77行数据。我想将这个dataframe写入R数据中。

当我使用函数

r_dataframe = com.convert_to_r_dataframe(df)

我遇到了一个错误,提示 dataframe 对象没有 type 属性。

当我查看 com.convert_to_r_dataframe() 的代码时,发现它只是获取了 dataframe 的列,并获取了列的 dtype.type。此时,这列是 dataframe,我认为大型列 dataframe 中可能包含内部 dataframe?有没有人有解决这个问题的想法?


feather包可能会有所帮助:https://blog.rstudio.org/2016/03/29/feather/这是一种Python和R都可以读取的格式。 - Rentrop
@Floo0 谢谢您的评论。但是,我无法修改 R 数据服务器。我只能使用 Python 将其保存为 R。 - xiangjian Wu
Feather 目前也不支持稀疏数据框。 - Ben Whale
2个回答

11

使用feather格式可以将数据帧从Python转移到R。您可以通过此链接找到更多信息。

快速示例。

在Python中导出:

import feather
path = 'my_data.feather'
feather.write_dataframe(df, path)

在 R 中导入:

library(feather)
path <- "my_data.feather"
df <- read_feather(path)
在这种情况下,您将获得R中的数据框。然后,您可以决定将其写入RData文件。
save(df, file = 'my_data.RData')

谢谢你的帮助。但我认为这不是最佳实现方式。 - xiangjian Wu
AttributeError: 模块 'feather' 没有 'write_dataframe' 属性。 - Jas
pip install feather-format # 解决上述 AttributeError 信息 - Jas

4

最简单、最好的实际解决方案是以 csv 格式导出。

import pandas as pd

dataframe.to_csv('mypath/file.csv')

然后使用 read.csv 在 R 中读取。


Python的输出必须是Rdata格式。我只是将数据框保存为csv文件,然后使用pd.read_csv()读取它,但它仍然存在相同的问题。 - xiangjian Wu
请查看以下内容:https://dev59.com/dGUp5IYBdhLWcg3wvpYM - ℕʘʘḆḽḘ
1
有很多充分的理由说明这并不是“最简单、最好”的方法,但如果你要做出超级lative的声明,就要准备好证明它。to_csv可能会非常慢,但更重要的是,不总是需要转到CSV,然后再从CSV重新导入。拥有一条更直接的路线到达目的地会很有帮助。 - Michael Tuchman
不回答原帖作者提问 - dawid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接