是否可以使用rpy2的pandas对象?

时间:2013-08-30 19:34:49

标签: python pandas rpy2

我想将pandas与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.

这是否意味着我还不能将pandas的对象与rpy2一起使用?

然后我尝试了:

import pandas.rpy.common as com

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]},index=["one", "two"])
rdf = com.convert_to_r_dataframe(df)

但是我如何使用rdf执行上述操作?例如,rdf['A']给了我一个TypeError

2 个答案:

答案 0 :(得分:3)

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

你需要这样做:

from rpy2.robjects import pandas2ri
pandas2ri.activate()

文档有点落后,支持不完整,但是有一个小例子可以显示它的标题:

https://plus.google.com/116424798545383828852/posts/jPfZ8VcTVi3

答案 1 :(得分:0)

你为什么不用熊猫?

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)

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