【发布时间】:2018-01-23 00:05:40
【问题描述】:
我正在使用 R 包 PythonInR,并想使用函数 pyGet() 将 pandas 数据帧转换为 R 数据帧,但出现以下错误:
as.data.frame.default(xi, optional = TRUE, stringsAsFactors = stringsAsFactors) 中的错误:无法将“PythonObject”类强制转换为 data.frame
text.csv 文件只包含两列,name(string) 和 value(int)。 代码如下:
library(PythonInR)
pyConnect()
pyIsConnected()
pyVersion()
pyOptions("usePandas", TRUE)
pyImport("pandas", as="pd")
test_code <-'py_df = pd.read_csv("test.csv")'
pyExec(code = test_code)
r_df <- pyGet("py_df")
而代码的输出是:
library(PythonInR)
pyConnect()
R is already connected to Python!
pyIsConnected()
[1] TRUE
pyVersion()
[1] "3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)]"
pyOptions("usePandas", TRUE)
pyImport("pandas", as="pd")
test_code <- 'py_df = pd.read_csv("test.csv")'
pyExec(code = test_code)
r_df <- pyGet("py_df")
as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) 中的错误: 无法将“PythonObject”类强制转换为 data.frame
谁能帮助建议如何使用PythonInR 将 Pandas 数据帧转换为 R data.frame?
【问题讨论】:
-
为什么不直接使用 R 的
read.table而不是追求这样的迂回方法呢?或者只是留在 Python 中。这里似乎没有任何协同作用的情况。 -
感谢您的评论,但我只需要将其中一个项目中的 R 和 Python 代码组合为一个完整的数据处理流程,这将需要 Python 和 R 对象之间的转换
-
你听说过feather project吗?
-
感谢 Roman 的建议,是的,羽毛可用于 Python 和 R,但是如何将 R 中创建的羽毛对象传输到我的 Python 代码中,而不是将其写入本地文件然后读入 Python?