Python中文
首页
教程
问答
标签
搜索
登录
注册
移动平均线计算不正确
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在用Quandl提供的数据对微软股票进行时间序列分析。我想画出收盘价和移动平均线的对比图。当我绘制移动平均线时,它们不会一直到图的右侧。你知道吗</p> <p>我相信有一个差距是有道理的(例如200天移动平均线不能开始,直到第200天),但担心的差距是对的。这意味着它是从最近的日期开始的(这在某种意义上是因为最近的日期是时间序列中的第一个),这显然不是正确的方法。你知道吗</p> <p>我可以反转序列(新的数据帧升序而不是降序),但我相信它也会从最近的日期开始绘制图表,这显然是不可接受的。你知道吗</p> <pre><code>#calculate moving averages for Microsoft roll100 = MSFT_data['Adj. Close'].rolling(100).mean() roll200 = MSFT_data['Adj. Close'].rolling(200).mean() roll50 = MSFT_data['Adj. Close'].rolling(50).mean() roll10 = MSFT_data['Adj. Close'].rolling(10).mean() roll200.plot(label = '200 Day Moving Average') roll50.plot(label = '50 Day Moving Average') roll100.plot(label = '100 Day Moving Average') MSFT_data['Adj. Close'].plot(label = 'MSFT Closing Price', color = 'blue') plt.legend(loc = 'upper left') </code></pre> <p>因为移动平均值应该总是从最早的日期开始计算,所以我假设我缺少了一个简单的命令。你知道吗</p> <p>更新:有人建议我将移动平均数作为原始数据框架的一部分(我假设它们与日期索引相关),但我得到了相同的结果:</p> <pre><code> MSFT_data['roll100'] = MSFT_data['Adj. Close'].rolling(100).mean() MSFT_data['roll200'] = MSFT_data['Adj. Close'].rolling(200).mean() MSFT_data['roll50'] = MSFT_data['Adj. Close'].rolling(50).mean() MSFT_data['roll10'] = MSFT_data['Adj. Close'].rolling(10).mean() #plot Microsoft Price along with moving averages fig = plt.figure() fig.set_figheight(8) fig.set_figwidth(10) MSFT_data['roll200'].plot(label = '200 Day Moving Average') MSFT_data['roll50'].plot(label = '50 Day Moving Average') MSFT_data['roll100'].plot(label = '100 Day Moving Average') MSFT_data['Adj. Close'].plot(label = 'MSFT Closing Price', color = 'blue') plt.legend(loc = 'upper left') </code></pre> <p><a href="https://i.stack.imgur.com/v6zyP.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/v6zyP.png" alt="Graph"/></a></p> <p>另外,如果我检查列,例如:</p> <pre class="lang-py prettyprint-override"><code>MSFT_data['roll10'].head(12) Date 2017-12-29 NaN 2017-12-28 NaN 2017-12-27 NaN 2017-12-26 NaN 2017-12-22 NaN 2017-12-21 NaN 2017-12-20 NaN 2017-12-19 NaN 2017-12-18 NaN 2017-12-15 85.796 2017-12-14 85.711 2017-12-13 85.674 Name: roll10, dtype: float64 </code></pre> <p>我可以看到最近的9个值是NaN。相反,如果我创建一个新的数据帧并尝试重新索引升序,那么尾部的最后9个值是NaN。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我不确定这是否是100%的答案,但它与从最新到最新创建的数据帧,然后索引有关。通过重置索引,按升序排序,然后重新索引到最新的位置,我使它开始工作。你知道吗</p> <pre><code>MSFT1 = MSFT_data.sort_index(ascending = True) MSFT1 = MSFT1.reset_index() MSFT1 = MSFT1.set_index('Date') </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
7 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
3 回答
如何添加计数?
9 回答
如何添加计数器函数?
10 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
9 回答
如何添加计数器来跟踪while循环中的月份和年份?
1 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
7 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
6 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
10 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
10 回答
如何添加谷歌地点自动完成到Flask?
4 回答
如何添加超时、python discord bot
9 回答
如何添加超过1dp的检查
7 回答
如何添加距离方法
1 回答
如何添加跟随游戏的敌人精灵
9 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
10 回答