用 Python 编写一个程序来计算给定数据帧中调整后和未调整后的 EWM
假设您有一个数据框,调整和未调整EWM的结果是-
adjusted ewm:
Id Age
0 1.000000 12.000000
1 1.750000 12.750000
2 2.615385 12.230769
3 2.615385 13.425000
4 4.670213 14.479339
non adjusted ewm:
Id Age
0 1.000000 12.000000
1 1.666667 12.666667
2 2.555556 12.222222
3 2.555556 13.407407
4 4.650794 14.469136解决方案
为了解决这个问题,我们将按照下面给出的步骤-
定义数据框
使用df.ewm(com=0.5)计算延迟0.5的调整后ewm。mean().
df.ewm(com=0.5).mean()
使用df.ewm(com=0.5)计算延迟为0.5的未调整ewm。mean().
df.ewm(com=0.5,adjust=False).mean()
例子
import numpy as np
import pandas as pd
df = pd.DataFrame({'Id': [1, 2, 3, np.nan, 5],
'Age': [12,13,12,14,15]})
print(df)
print("adjusted ewm:\n",df.ewm(com=0.5).mean())
print("non adjusted ewm:\n",df.ewm(com=0.5,adjust=False).mean())输出
Id Age
0 1.0 12
1 2.0 13
2 3.0 12
3 NaN 14
4 5.0 15
adjusted ewm:
Id Age
0 1.000000 12.000000
1 1.750000 12.750000
2 2.615385 12.230769
3 2.615385 13.425000
4 4.670213 14.479339
non adjusted ewm:
Id Age
0 1.000000 12.000000
1 1.666667 12.666667
2 2.555556 12.222222
3 2.555556 13.407407
4 4.650794 14.469136