我有这个数据框
2000 2001 2002 2003 2005 2006
Country Location
US Hawai 20 40 120 260 60 100
IT Torino 40 450 140 540 54 200
FR Paris 60 660 660 640 64 300
ISR JER 80 880 380 830 830 400
我想计算每个国家的指数移动平均值(EMA7)(不包括2000年至2005年-2006年)
我天真地尝试了这种方法。它是否正确?
ema7=df1.ewm(span=7,adjust=False).mean()
给了
2000 2001 2002 2003 2005 2006
Country Location
US Hawai 20.0000 40.00000 120.0000 260.000 60.00000 100.0000
IT Torino 25.0000 142.50000 125.0000 330.000 58.50000 125.0000
FR Paris 33.7500 271.87500 258.7500 407.500 59.87500 168.7500
ISR JER 45.3125 423.90625 289.0625 513.125 252.40625 226.5625
除了应该排除2006年这一事实之外,我无法确定我得到的值是否正确。有什么帮助吗?
答案 0 :(得分:0)
使用:
ema7=df1.drop(2006, axis=1).ewm(span=7,adjust=False).mean()
print (ema7)
2000 2001 2002 2003 2005
Country Location
US Hawai 20.0000 40.00000 120.0000 260.000 60.00000
IT Torino 25.0000 142.50000 125.0000 330.000 58.50000
FR Paris 33.7500 271.87500 258.7500 407.500 59.87500
ISR JER 45.3125 423.90625 289.0625 513.125 252.40625
ema7=(df1.set_index(2006, append=True)
.ewm(span=7,adjust=False)
.mean()
.reset_index(level=2)
.sort_index(axis=1))
print (ema7)
2000 2001 2002 2003 2005 2006
Country Location
US Hawai 20.0000 40.00000 120.0000 260.000 60.00000 100
IT Torino 25.0000 142.50000 125.0000 330.000 58.50000 200
FR Paris 33.7500 271.87500 258.7500 407.500 59.87500 300
ISR JER 45.3125 423.90625 289.0625 513.125 252.40625 400