Bio7导入模块

时间:2018-08-23 18:13:07

标签: python dataflow bio7

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

import pandas as df
print("here we are")
df=RServeUtil.fromR("iris")
print(df)

但我在import陈述中有误。

3 个答案:

答案 0 :(得分:0)

您可能混合了一些东西:

  • Bio7与Python无关,它是用于生态建模的IDE和用于Java的API。
  • 导入熊猫在您的代码中没有任何意义。

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

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

import pandas as pd

代码中的名称df dataframe 的通用名称,例如。 G。 pandas的DataFrame-您似乎试图将两种不同来源的代码组合在一起,一种用于熊猫,另一种用于Bio7。

答案 1 :(得分:0)

Bio7使用默认Jython,它不支持常规Python软件包,请参阅:

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

http://www.jython.org/

Jython在Java Virtual Maschine进程中运行,并且可以访问您使用Python语法使用的Bio7 Java API,但缺少许多强大的Python软件包的支持。

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

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

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

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

https://rpy2.bitbucket.io/

如果您更喜欢使用Python。

但是,这取决于您要执行的操作。也许单独使用Jython可以满足您的需求。

答案 2 :(得分:0)

我刚刚测试了一个有趣的解决方法,可以从Python调用Rserve(默认情况下Rserve不支持Jython)。

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

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

请注意,由于所有平台上Bio7中都有特殊的Rserve版本,到此为止,所有R工作区变量都将保留在本机R控制台中!

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

run.Rserve()

最后,我可以将Python连接到Rserve并评估这样的脚本:

import pyRserve 
conn = pyRserve.connect()
conn.eval("print(runif(100))")
#conn.close()
conn.shutdown()

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

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

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

在Python脚本的专用上下文菜单中使用“运行方式”操作。

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

R的变量可以在Python中分配,例如以下示例:

t=conn.eval("runif(100)")
print t