【问题标题】:Rpy2 (working with Dataframes) - How to solve the Python(NaN) and R(NA) conflict?Rpy2(使用数据框) - 如何解决 Python(NaN) 和 R(NA) 冲突?
【发布时间】:2019-06-12 12:59:25
【问题描述】:

我有一个熊猫数据框:result,有 2 列。

doy(day_of_year:自变量,值 1,2,3,....365)。

bookings(因变量,279 个数值和 86 个 NaN 值)

请在下面找到部分数据框:

我的目标是使用R (randomForest::rfImpute) 估算缺失值以进行进一步的光谱分析。 所以,我使用rpy2 在 Python 脚本中使用 R 代码。我已经导入了必要的包/库。我也激活了`pandas2ri。

import random
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
base = importr('base')
utils = importr('utils')

randomForest = importr('randomForest')

from rpy2.robjects import pandas2ri
pandas2ri.activate()


r_df = pandas2ri.py2ri(result)

type(r_df)
print(r_df.head())
print(base.summary(r_df))


random.seed(222)

result.imputed = randomForest.rfImpute('bookings', 'doy', data = r_df)`

但每当我运行代码时,我都会收到错误消息:No NA values found in bookings.

很明显,R 代码无法解释缺失值。

我也尝试过替换R dataFrame中的NaN with NAr_df

robjects.r('r_df[is.nan(as.numeric(r_df))] = NA')

但是当我运行代码时,我得到了错误:object r_df is not found.

有没有办法解决这个问题?到目前为止,我有点卡住了,似乎找不到有用的文档。

请在下面找到单独代码行的一些其他输出。

【问题讨论】:

    标签: python r random-forest rpy2


    【解决方案1】:

    (...)

    robjects.r('r_df[is.nan(as.numeric(r_df))] = NA')
    

    但是当我运行代码时,我得到了错误:object r_df is not found.

    r_df是 Python 变量的名称(在您的 Python 代码中定义的名称),因此嵌入式 R 不知道它。

    有没有办法解决这个问题?到目前为止,我有点卡住了,似乎找不到有用的文档。

    这个呢: https://rpy2.github.io/doc/v2.9.x/html/robjects_rinstance.html#r-the-instance-of-r

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-17
      • 2022-12-06
      • 2014-10-26
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 2020-01-07
      相关资源
      最近更新 更多