rpy2导入无效

uda*_*day 9 python rpy2 pandas

我尝试导入rpy2时出错.这是代码和错误.

>>> import pandas.rpy.common
Traceback (most recent call last):  

File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\IPython\core\interactiveshell.py", line 2828, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

File "<ipython-input-148-c258a0f70d44>", line 1, in <module>
import pandas.rpy.common

File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\pandas\rpy\common.py", line 14, in <module>
from rpy2.robjects.packages import importr

ImportError: No module named 'rpy2'
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?我正在使用python版本3.3.3和pandas版本0.13.1

编辑

试图单独安装rpy2.

  1. 直接使用python setup.py install给了我一个os没有模块的错误popen3.

  2. 直接从Christoph Gohlke的网站http://www.lfd.uci.edu/~gohlke/pythonlibs/安装exe(rpy2-2.3.9.win32-py3.3.exe).但是,如果我尝试这样做,import pandas.rpy.common as com我会收到以下错误(加载DLL的问题from rpy2.rinterface._rinterface import *:

    Traceback (most recent call last):
      File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\IPython\core\interactiveshell.py", line 2828, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
    
      File "<ipython-input-10-63ebebefea80>", line 1, in <module>
    import pandas.rpy.common as com
    
      File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-    packages\pandas\rpy\common.py", line 14, in <module>
    
    from rpy2.robjects.packages import importr
    
      File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\rpy2\robjects\__init__.py", line 15, in <module>
    
        import rpy2.rinterface as rinterface
      File "C:\PF\WinPython-64bit-3.3.3.3\python-3.3.3.amd64\lib\site-packages\rpy2\rinterface\__init__.py", line 103, in <module>
    
        from rpy2.rinterface._rinterface import *
    ImportError: DLL load failed: %1 is not a valid Win32 application.
    
    Run Code Online (Sandbox Code Playgroud)

编辑

终于解决了.似乎添加R_HOME和R_USER环境变量就可以了.

mwa*_*kom 5

RPy2是熊猫(主页一个单独的项目在这里),所以你必须单独安装它.您应该可以这样做pip install rpy2,然后重新启动Python并再试一次.


Bob*_*son 5

这可能并不直接适用于您的问题,但是自从 pandas 和 rpy2 升级后,它们的界面就发生了变化。为了设置它,您现在必须:

from rpy2.robjects import r, pandas2ri

pandas2ri.activate()
Run Code Online (Sandbox Code Playgroud)

现在,为了将 Pandas 数据帧更改为 R 数据帧,必须使用pandas2ri.py2ri(),或者pandas2ri.ri2py()如果要将 R 数据帧更改为 Pandas 数据帧,请使用。更多信息可以在https://pandas.pydata.org/pandas-docs/stable/r_interface.html找到。