+-
python – pandas.rpy.common.load_data()用法/文档?
我正在尝试转换一些< class'rpy2.robjects.vectors.Matrix'>变量进入Pandas数据帧.

在互联网上有很多关于如何这样做的复制粘贴说明,所有这些都给出了简短的例子:

pandas.rpy.common.load_data("infert")

没有关于“感染”来自哪里的任何信息.
我无法得到关于这个函数的任何文档(为什么没有?),但显然我不能使用它:

summary= r.summary(linear_model)
filtered_summary=summary.rx2("tTable")
print com.load_data("filtered_summary")

给我:

---------------------------------------------------------------------------
LookupError                               Traceback (most recent call last)
<ipython-input-68-a087eddd5220> in <module>()
      8 #print test1_sum.names
      9 print type(r_res)
---> 10 print com.load_data("filtered_summary")
     11 #print pd.DataFrame(test1_sum.rx2("tTable"))
     12 

/usr/lib64/python2.7/site-packages/pandas/rpy/common.pyc in load_data(name, package, convert)
     29     r.data(name)
     30 
---> 31     robj = r[name]
     32 
     33     if convert:

/usr/lib64/python2.7/site-packages/rpy2/robjects/__init__.pyc in __getitem__(self, item)
    226 
    227     def __getitem__(self, item):
--> 228         res = _globalenv.get(item)
    229         res = conversion.ri2ro(res)
    230         res.__rname__ = item

LookupError: 'filtered_summary' not found

而:

summary= r.summary(linear_model)
print com.load_data("summary")

给我:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-69-b51722281aa4> in <module>()
      8 #print test1_sum.names
      9 print type(r_res)
---> 10 print com.load_data("summary")
     11 #print pd.DataFrame(test1_sum.rx2("tTable"))
     12 

/usr/lib64/python2.7/site-packages/pandas/rpy/common.pyc in load_data(name, package, convert)
     32 
     33     if convert:
---> 34         return convert_robj(robj)
     35     else:
     36         return robj

/usr/lib64/python2.7/site-packages/pandas/rpy/common.pyc in convert_robj(obj, use_pandas)
    222             return converter(obj)
    223 
--> 224     raise TypeError('Do not know what to do with %s object' % type(obj))
    225 
    226 

TypeError: Do not know what to do with <class 'rpy2.robjects.functions.SignatureTranslatedFunction'> object

所以:

>如何正确使用load_data
>我怎样才能最好地将我的R矩阵转换为Pandas DataFrame?

最佳答案
load_data函数可用于将数据集加载到R datasets软件包中可用的数据框中,因此它是R data()函数的包装器.

例如:

from pandas.rpy.common import load_data
iris = load_data('iris')

将加载众所周知的虹膜数据集.它在文档中简要提到:http://pandas.pydata.org/pandas-docs/stable/r_interface.html#transferring-r-data-sets-into-python

如果你想转换rpy2.robjects ……你可以这样做:

from rpy2.robjects import pandas2ri
pandas2ri.activate()

然后转换应该自动发生.或者你可以明确地做:pandas2ri.ri2pandas(rpy2_object)

点击查看更多相关文章

转载注明原文:python – pandas.rpy.common.load_data()用法/文档? - 乐贴网