2013-03-04 153 views
1

我是python和学习熊猫的新手。我想将熊猫数据帧“datframe”转换为R型数据帧(稍后使用rpy2)。为此,我有以下我的两行代码:convert_to_r_dataframe模块对象没有属性

import pandas.rpy.common as com 
r_dataframe = com.convert_to_r_dataframe(datframe) 

第一个命令经历,但后来我得到以下错误:

 
Traceback (most recent call last): 
    File "", line 1, in 
    r_dataframe = com.convert_to_r_dataframe(datframe) 
AttributeError: 'module' object has no attribute 'convert_to_r_dataframe' " 

我不知道为什么发生这种情况,以及如何排除故障。在代码早期我有 进口熊猫作为pd 这可能是问题吗?

我使用python 2.7.3,rpy2-2.3.2和2.15.3

+0

从rpy2-2.3 .3,你可以选择使用一个automagic转换器,它可以在许多(甚至大多数)情况下调用'convert_to_r_dataframe'。 'from rpy2.robjects import pandas2ri; pandas2ri.activate()'应该是你需要的所有东西(只要R函数被调用,熊猫数据框就会被隐式转换)。 – lgautier 2013-03-05 11:47:51

回答

0

它为我的作品:

>>> import rpy2 
>>> import pandas as pd 
>>> import pandas.rpy.common as com 
>>> rpy2.__version__ 
'2.3.1' 
>>> pd.__version__ 
'0.10.0' 
>>> datframe = pd.DataFrame({'a' : [1, 2, 3], 'b' : [3, 4, 5]}) 
>>> r_df = com.convert_to_r_dataframe(datframe) 
>>> r_df 
<DataFrame - Python:0x105b12710/R:0x7fa8131d7918> 
[IntVector, IntVector] 
    a: <class 'rpy2.robjects.vectors.IntVector'> 
    <IntVector - Python:0x105b12ab8/R:0x7fa8131d7838> 
[  1,  2,  3] 
    b: <class 'rpy2.robjects.vectors.IntVector'> 
    <IntVector - Python:0x105b12950/R:0x7fa8131d7800> 
[  3,  4,  5] 

不同rpy2版本,但..

+0

>>>进口rpy2 >>>进口大熊猫作为PD >>>进口pandas.rpy.common作为COM >>> >>> rpy2 .__ version__ '2.3.2' >>> PD .__ version__ '0.7.0' – user2133151 2013-03-04 20:11:30

+0

我的早期pd版本可能是问题吗?我如何升级到最新? – user2133151 2013-03-04 20:13:03

+0

值得尝试,你可以使用pip:'sudo pip install --upgrade pandas'(编辑:实际上[doc](http://pandas.pydata.org/pandas-docs/stable/whatsnew.html)转换到R data.frame被添加到熊猫v0.8.0) – herrfz 2013-03-04 20:14:31

相关问题