【问题标题】:How to convert rpy2 ListVector (rpy2.robjects.vectors.ListVector) to python?如何将 rpy2 ListVector (rpy2.robjects.vectors.ListVector) 转换为 python?
【发布时间】:2015-02-18 23:13:53
【问题描述】:

我正在使用 rpy2 从 python 运行 auto.arima() 模型。我的预测输出类型为 rpy2.robjects.vectors.ListVector 的对象。

input1:  type(forecast)
output: rpy2.robjects.vectors.ListVector

问题:如何以 rpy2.robjects.vectors.ListVector 的形式将此预测转换回 python?请注意,我查看了其他帖子,但答案似乎对问题过于具体,无论如何,无法从中找出答案。

请注意,此 ListVector 具有以下名称:

input: print(forecast.names)
output:   [1] "method"    "model"     "level"     "mean"      "lower"     "upper"    
 [7] "x"         "xname"     "fitted"    "residuals"

【问题讨论】:

    标签: python time-series rpy2


    【解决方案1】:

    如果您还想要上 80% 和下 80% 的预测数据框,您可以使用

    pd.DataFrame({'forecast':np.array(forecast.rx('mean')).flatten(),
            'lo80':np.array(forecast.rx('lower')[0][:2]),
            'hi80':np.array(forecast.rx('upper')[0][:2])})
    

    【讨论】:

      【解决方案2】:

      可以使用“.rx”选择感兴趣的向量然后使用numpy.array转换回python:

      arima_mean = np.array(forecast.rx('mean'))
      

      然后到pandas,先将numpy数组展平:

      pd.DataFrame({'mean':arima_mean.flatten()} )
      

      【讨论】:

        猜你喜欢
        • 2014-07-31
        • 2012-10-30
        • 2017-02-10
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 2012-06-02
        • 2016-04-16
        • 2019-09-02
        相关资源
        最近更新 更多