俗话说的好“福无双至,祸不单行”。果然前一阵出现了两个问题,结果前天告诉我比赛获奖了,睡前1w,丢自行车的钱能补回来了。高兴不到5个小时呢,我查了查参加的一项考试,果然挂科了。真tm。
今天用Python调用R语言的时候,出现了一个问题
NotImplementedError: Conversion 'py2ri' not defined for objects of type '<class 'pandas.core.series.Series'>'
我在Stack Overflow社区的找到了解决的方法,我的问题差不多,是DataFrame不能转化,但是解决方法都一样。
这个是原版。
我想做的是将Python中的变量应用到R中去,但是报错说R中没有函数能处理pd.dataframe的函数。因此需要做一个变量转换。
百度了很多rpy2包的使用,变量的转换。没卵用,讲解的都差不多。基本上原创就一个,剩下的所有的人都转载人家原创一篇的。讲的是用**vector()函数变换的,不管事。
所以最终解决办法就是用:
from rpy2.robjects import pandas2ri
pandas2ri.activate()
robjects.globalenv['dataframe'] = dataframe
这几行命令解决。注意第二行的命令 activate这个必须要加进去,第三行才不能报错。我先开始试了半天,真特么。至于原问题的代码
import pandas.rpy.common as common
robjects.globalenv['dataframe']\
= common.convert_to_r_dataframe(dataframe)
根本就不对。反正我用的是Python3,错误的内容是 pandas模块根本没有rpy