Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';数据帧';对象没有属性';数据类型';_Python_R_Reticulate_Pvlib - Fatal编程技术网

Python 属性错误:';数据帧';对象没有属性';数据类型';

Python 属性错误:';数据帧';对象没有属性';数据类型';,python,r,reticulate,pvlib,Python,R,Reticulate,Pvlib,我害怕 py_get_attr_impl(x,name,silent)中出错:AttributeError: “DataFrame”对象没有属性“dtype” 使用R中的网状包调用R中的python代码 python中的代码运行正常。我不确定这个错误是从哪里来的。我正在使用pvlib python库调用一些内置数据库 我的代码是R,是: library('reticulate') pd <- import('pandas') pvlib <- import('pvlib') np &

我害怕

py_get_attr_impl(x,name,silent)中出错:AttributeError: “DataFrame”对象没有属性“dtype”

使用R中的网状包调用R中的python代码

python中的代码运行正常。我不确定这个错误是从哪里来的。我正在使用pvlib python库调用一些内置数据库

我的代码是R,是:

library('reticulate')
pd <- import('pandas')
pvlib <- import('pvlib')
np <- import('numpy') 
sandia_modules = pvlib$pvsystem$retrieve_sam('SandiaMod')
cec_inverters = pvlib$pvsystem$retrieve_sam("CECInverter")
我试着寻找解决办法,但到目前为止没有找到任何有用的办法

以下是回溯:

10: stop(list(message = "AttributeError: 'DataFrame' object has no attribute 'dtype'", 
        call = py_get_attr_impl(x, name, silent), cppstack = list(
            file = "", line = -1L, stack = "C++ stack not available on this system")))
9: .Call(`_reticulate_py_get_attr_impl`, x, name, silent)
8: py_get_attr_impl(x, name, silent)
7: py_get_attr(x, name)
6: `$.python.builtin.object`(x[[column]], "dtype")
5: x[[column]]$dtype
4: py_to_r(x[[column]]$dtype$name)
3: py_to_r.pandas.core.frame.DataFrame(result)
2: py_to_r(result)
1: pvlib$pvsystem$retrieve_sam("CECInverter")

尝试使用
import()
中的
as
参数。您的代码对我来说也是错误的,但这起作用了:

library(reticulate) # version 1.6

pd <- import('pandas', as = "pd")
pvlib <- import('pvlib', as = "pvlib")
np <- import('numpy', as = "np") 

sandia_modules <- pvlib$pvsystem$retrieve_sam('SandiaMod')
cec_inverters <- pvlib$pvsystem$retrieve_sam("CECInverter")
library(网状)#版本1.6

pd我早就知道了,但现在在这里发布的是来自GitHub的
“networkite”
软件包是最新的,并且在这个版本中解决了许多问题。主要的一个是将数据帧转换为R
data.frame

下面是这样做的代码

library(devtools)
devtools::install_github("rstudio/reticulate")

你能发布完整的错误回溯吗?你现在可以检查了。那不是完整的错误回溯。调用堆栈的每一帧应该有一行。不仅仅是一行我们不知道的地方。为什么Python中有
ceinverter
,而R中有
ceinverter
?你能试着在R中改变大小写以匹配Python吗?两者都在Python中工作。所以这不是问题。即使我输入“sandiamod”而不是“sandiamod”,它也能工作。哇,这真是疯了。你有没有解释为什么这段代码可以工作,但是原来的代码失败了?
networkite
文档中的示例看起来像是OP的代码,而不是这样。@JohnZwinck很多事情都是这样工作的(奇怪)。最初我对
pvlib$pvsystem$retrieve_sam('SandiaMod')
有问题,但我卸载了
networkite
软件包并重新安装。好像没有什么问题。现在我在访问数据库中的内容时遇到了问题
sandia_module=sandia_modules[“Canadian_Solar_CS5P_220M____2009_”]
这一行代码以前在使用
sandia_modules
时工作得很好,但现在它给出了一个错误:
类型为“environment”的对象不可子集
不确定为什么事情会如此奇怪。一次它们工作,另一次行为相反,我发现了我最新一期的解决方案:“(复制):我使用[[而不是[,因为前者做单元素索引,而后者可以通过逻辑向量选择范围。”如果这就是我以前能够访问的原因。荒谬。我无法完全跟踪
networkite
中发生的事情导致了这一点,但我在DataFrame ops中看到过,而其他模块代码中也有类似的内容。实际上,只有
pd
library(devtools)
devtools::install_github("rstudio/reticulate")