Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧列类型从整数更改为因子_Python_R_Dataframe_Rpy2 - Fatal编程技术网

Python 将数据帧列类型从整数更改为因子

Python 将数据帧列类型从整数更改为因子,python,r,dataframe,rpy2,Python,R,Dataframe,Rpy2,我在R中的代码具有以下简单赋值: df$a<-factor(df$a,levels=c("3","2","1")) 现在我想更改列'a'的类型,并设置其中的级别顺序,就像我在R中所做的那样。是否可以使用rpy?来固定R因子中的级别: >>> from rpy2.robjects.vectors import FactorVector, IntVector >>> v = FactorVector((1,2,3), levels=IntVector(

我在R中的代码具有以下简单赋值:

 df$a<-factor(df$a,levels=c("3","2","1")) 

现在我想更改列
'a'
的类型,并设置其中的级别顺序,就像我在R中所做的那样。是否可以使用rpy?

来固定R
因子中的级别:

>>> from rpy2.robjects.vectors import FactorVector, IntVector
>>> v = FactorVector((1,2,3), levels=IntVector((3,2,1)))
>>> print(v)
[1] 1 2 3
Levels: 3 2 1
可以通过以下方法更改数据帧中的列:

>>> dataf[dataf.index('a')] = v
注意:在R中,您很乐意给出数值(整数),同时将级别指定为字符串。R确实允许您以静默的方式执行此操作,但请注意,R“factor”向量的内部表示形式是整数,这种混合可能会导致令人不快的意外

>>> dataf[dataf.index('a')] = v