python中调用R语言包

本文介绍了如何在Python中利用rpy2库调用R语言的STL函数进行时间序列分析。通过激活pandas2ri并定义相关R函数,将观察值转化为时间序列对象,并进行STL分解,提取季节性、趋势和残差。在使用过程中遇到t_degree参数在Python中报错的问题,最终发现需要按照Python语法调整为d_degree。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用python做时间序列分析时,调用了R语言中的stl函数。共享脚本和踩过的坑:
 

import pandas as pd
from pandas import DataFrame 
import numpy as np
import time
import datetime
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri

def abnormal_detection(observed):
    pandas2ri.activate()
    stl=robjects.r['stl']
    ts=robjects.r['ts']
    c=robjects.r['c']
    read_csv=robjects.r['read.csv']

    observed_periodic=ts(observed,frequency=7,start=c(1,1))    
    decompose=stl(observed_periodic,"per",robust="TRUE",t_degree=1)
    #分解出decompose结果中,seasonal, trend,residual。 
    lenth = len(decompose[0])
    seasonal=decompose[0][0:int(lenth/3)]
    trend=decompose[0][int(lenth/3):int(2*lenth/3)]
    residual = decompose[0][int(2*lenth/3):]

 

其中一个坑是在d

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值