用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).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
广告