将文本列中带有 NA 的 R 数据帧转换为带有 rpy2 的 Python

Converting R dataframe with NA in text column to Python with rpy2

提问人:Federico Cozzi 提问时间:10/18/2023 更新时间:10/18/2023 访问量:26

问:

我想使用 rpy2 将 R 数据帧转换为 python。 我不知道如何将文本列中出现的 NA 转换为 Python 值。

这是一个显示我问题的例子。

import rpy2.robjects as ro
ro.r('n = c(1,2)')
ro.r("b = c(NA,'def')")
ro.r("df = data.frame(n,b)")
rdf = ro.r('df')
from rpy2.robjects.conversion import localconverter
from rpy2.robjects import pandas2ri
with localconverter(ro.default_converter + pandas2ri.converter):
    df = ro.conversion.rpy2py(rdf)

生产:

>>> print(df)
     n              b
1  1.0  NA_character_
2  2.0            def

使用旧版本 rpy2 的类似代码可以工作

import rpy2.robjects as ro
ro.r('n = c(1,2)')
ro.r("b = c(NA,'def')")
ro.r("df = data.frame(n,b)")
rdf = ro.r('df')
from rpy2.robjects import pandas2ri
df = pandas2ri.ri2py(rdf)

产生:

>>> print(df)
     n    b
0  1.0  NaN
1  2.0  def

我如何找回旧行为?

Python R RPY2

评论


答: 暂无答案