首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bio7导入模块

Bio7导入模块
EN

Stack Overflow用户
提问于 2018-08-24 02:13:07
回答 3查看 70关注 0票数 0

我尝试使用Bio7数据流。可以从R获取数据帧并在Python脚本中使用。我尝试使用以下代码

代码语言:javascript
复制
import pandas as df
print("here we are")
df=RServeUtil.fromR("iris")
print(df)

但是我在import语句中有一些错误。

EN

回答 3

Stack Overflow用户

发布于 2018-08-24 02:52:25

你可能会混淆一些东西:

  • Bio7与Python没有任何关系,它是用于生态建模的集成开发环境,并且用于
    • 的Bio7在您的代码中没有任何意义。

您收到错误消息,因为您可能尚未安装pandas。

顺便说一句,更常见的是导入带有pd名称的熊猫:

代码语言:javascript
复制
import pandas as pd

你代码中的名称df是一个数据框架的通用名称,例如熊猫的dataframe -看起来你试图组合来自两个不同来源的代码,一个用于熊猫,另一个用于Bio7。

票数 0
EN

Stack Overflow用户

发布于 2018-08-24 17:11:13

Bio7默认使用Jython,Jython不支持一般的Python包,参见:

https://en.wikipedia.org/wiki/Jython

http://www.jython.org/

Jython在Java Virtual Maschine进程中运行,可以访问Python语法中使用的Python,但缺乏许多功能强大的Bio7包的支持。

此外,还可以使用原生Python解释器在Bio7中执行Python脚本(控制台也支持访问)

当然,由于Bio7是基于Eclipse的,因此您可以通过Bio7更新管理器安装更强大的通用Python和Jython编辑器(PyDev),请参阅:

https://marketplace.eclipse.org/content/pydev-python-ide-eclipse

Bio7还支持使用服务器桥(P4J:http://py4j.sourceforge.net/)转换到Python,但我认为在您的情况下也可以使用直接的R桥,例如,使用:

https://rpy2.bitbucket.io/

如果你在Python中工作。

然而,这取决于你想要做什么。也许单独使用Jython就能满足您的需要。

票数 0
EN

Stack Overflow用户

发布于 2018-08-25 01:20:44

我刚刚测试了一个有趣的变通方法,从Python (而不是Jython )调用Rserve,Jython默认支持Rserve。

您可以将pyRserve (https://pythonhosted.org/pyRserve/intro.html#documentation)作为Python包安装。

在Bio7中,您可以使用Rserve操作启动Rserve。但是,您也可以通过再次调用该操作来切换到本机R控制台(也可以在没有Rserve的情况下使用可用控制台操作单独启动)。

请注意,在此之前的所有R工作区变量也将保留在原生R控制台中,因为在所有平台上的Bio7中都有特殊的Rserve版本!

现在,我可以使用以下命令从R控制台(不是从Bio7管理)启动Rserve:

代码语言:javascript
复制
run.Rserve()

最后,我可以将Python连接到Rserve并计算脚本,如下所示:

代码语言:javascript
复制
import pyRserve 
conn = pyRserve.connect()
conn.eval("print(runif(100))")
#conn.close()
conn.shutdown()

在上面的示例中,我在脚本中关闭了Rserve,以便可以使用Bio7工具栏操作再次连接到Rserve。

通过这种简单的方式,我可以访问所有当前可用的R工作区数据(例如,ImageJ数据等)。或者将数据从Python发送到R。

在Bio7中使用已安装的PyDev编辑器插件时:https://youtu.be/-kySAN9doXQ

在Python脚本的专用上下文菜单中使用“Run as”操作。

还请注意,如果有必要查看Bio7结果,请使用PyDev编辑器切换到Bio7控制台(请参阅控制台操作“显示选定的控制台”)!

可以在Python中对R中的变量进行赋值,如下所示:

代码语言:javascript
复制
t=conn.eval("runif(100)")
print t
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51991933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档