将pd.ewma从0.17.0迁移到1.1.2

2024-10-04 03:29:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将这行代码从Python 2.7/Pandas 0.17.0移植到Python 3.7/Pandas 1.1.2:

python 2.7/0.17.0
returnVar=pd.ewma(varSeries,span=varSpan)

python 3.7/1.1.2
returnVar=varSeries.ewm(span=varSpan)

在遗留代码中,返回类型为pandas.core.series.Series,而在迁移的代码中,返回类型为pandas.core.window.ewm.ExponentialMovingWindow

如何修复此问题,以便获得完全相同的返回值和类型

python 2.7/0.17.0

>>>type(varSeries)
<class 'pandas.core.series.Series'>
>>>type(varSpan)
<type 'numpy.float64'>
>>>varSpan
3.0
>>>varSeries
IndexDate
2002-01-07    347.98470
                 ...  
2020-09-29     89.11943
Name: SPGSCLP, dtype: float64
>>>
>>>returnVar = pd.ewma(varSeries,span=varSpan)
>>>type(returnVar)
<class 'pandas.core.series.Series'>
>>>returnVar
IndexDate
2002-01-07    347.984700
                 ...  
2002-01-08    345.500633
Name: SPGSCLP, dtype: float64

python 3.7/1.1.2

>>>returnVar = varSeries.ewm(span=varSpan)
>>>type(returnVar)
<class 'pandas.core.window.ewm.ExponentialMovingWindow'>
>>>returnVar
ExponentialMovingWindow [com=1.0,min_periods=1,adjust=True,ignore_na=False,axis=0]

Tags: 代码core类型pandastypeclassseriesspan