我想将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
答案 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)
我知道这并不能完全回答你的问题,但有时遇到这样的问题表明你没有按照预期使用这些工具。