用 Python 编写一个程序来计算给定数据框中的调整后和未调整后的 EWM
pythonpandasserver side programmingprogramming
假设您有一个数据框,调整后和未调整后的 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).mean() 计算延迟 0.5 的调整后的 ewm。
df.ewm(com=0.5).mean()
使用 df.ewm(com=0.5).mean() 计算延迟 0.5 的未调整 ewm。
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