Python 是否可以将pandas对象与rpy2一起使用?

Python 是否可以将pandas对象与rpy2一起使用?,python,pandas,rpy2,Python,Pandas,Rpy2,我想将熊猫与R结合使用,所以我做到了: import pandas as pd import rpy2.robjects as robjects >>> df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]},index=["one", "two"]) >>> robjects.r.cor(df.A, df.B) ValueError: Nothing can be done for the type &

我想将熊猫与R结合使用,所以我做到了:

import pandas as pd
import rpy2.robjects as robjects

>>> df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]},index=["one", "two"])
>>> robjects.r.cor(df.A, df.B)
    ValueError: Nothing can be done for the type <class 'pandas.core.series.Series'> at the moment.

但是如何使用
rdf
?例如,
rdf['A']
给我一个
TypeError

为什么不使用pandas

import pandas as pd
from scipy import stats

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df.corr('pearson')
=> A  B
A  1  1
B  1  1
stats.f_oneway(df['A'], df['B'])
=> (13.5, 0.021311641128756723)

我知道这并不能准确回答您的问题,但有时遇到这样的问题表明您没有按照预期使用这些工具。

最初支持无缝使用pandas和R/rpy

您需要执行以下操作:

from rpy2.robjects import pandas2ri
pandas2ri.activate()
文档有点落后,支持也不完整,但有一个小例子可以说明这一点:


因为我最终将使用更复杂的统计测试(如ANOVAs),而据我所知,这些测试目前还没有在熊猫身上实施。提供的示例只是为了简单起见,我使用scipy添加了一个方差分析。在R中可以做的事情很少是python中做不到的。我对rpy的理解是,它用于在python中运行R模块,而不是在python解释器中编写R代码。请随便证明我错了!这正是我的理解。@mattexx虽然说在R中你能做的事情很少,但在Python中是不可能实现的(因为Python是一种编程语言),但它忽略了一个重要的问题:你需要付出多少努力才能达到同样的结果。此时,R可能只是拥有最全面的统计工具库。@mattexx(续)。关于rpy(2),它向Python公开了所有R。这样就可以在R中运行函数,还可以用R代码解析和计算字符串。推进到这一步,iPython中出现了诱人的“rmagic”(使用它可以在Python交互会话中编写R代码)。@HappyPy您可以在statsmodels包中找到ANOVA。有一个扩展的例子,这是烹饪书的一个很好的例子:;另外,在文档的R部分有一个链接也不错!
from rpy2.robjects import pandas2ri
pandas2ri.activate()