pandas 0.23.4 :’pd.ewma’没有这个模块,改用`Series.ewm` 或 降低版本到 pandas 0.21.0

pandas 0.23.4 :’pd.ewma’没有这个模块,改用`Series.ewm` 或 降低版本到 pandas 0.21.0问题:在进行画出指数平滑移动平均线,遇到如下问题:#pd.ewma(com=None,span=one)#指数平均线。com:数据;span:时间间隔AttributeError:module’pandas’hasnoattribute’ewma’解决办法:在pandas0.23.4版本中,已经不存在这种方法,回退到之前版本pandas0.21.0就一切完美…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

问题:

在进行画出指数平滑移动平均线,遇到如下问题:

# pd.ewma(com=None, span=one)  # 指数平均线。com:数据;span:时间间隔

AttributeError: module 'pandas' has no attribute 'ewma'

Jetbrains全家桶1年46,售后保障稳定

解决办法:

方法一:
换用下面的方法

# Series.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, freq=None, adjust=True, ignore_na=False, axis=0)
# com : float, optional
# Specify decay in terms of center of mass, \(\alpha = 1 / (1 + com),\text{ for } com \geq 0\)
# span : float, optional
# Specify decay in terms of span, \(\alpha = 2 / (span + 1),\text{ for } span \geq 1\)
# halflife : float, optional
# Specify decay in terms of half-life, \(\alpha = 1 - exp(log(0.5) / halflife),\text{ for } halflife > 0\)
# alpha : float, optional
# Specify smoothing factor \(\alpha\) directly, \(0 < \alpha \leq 1\)
# New in version 0.18.0.
# min_periods : int, default 0
# Minimum number of observations in window required to have a value (otherwise result is NA).
# freq : None or string alias / date offset object, default=None (DEPRECATED)
# Frequency to conform to before computing statistic
# adjust : boolean, default True
# Divide by decaying adjustment factor in beginning periods to account for imbalance in relative weightings (viewing EWMA as a moving average)
# ignore_na : boolean, default False
# Ignore missing values when calculating weights; specify True to reproduce pre-0.15.0 behavior

stock_day["close"].ewm(span=30).mean().plot()

方法二:
pandas 0.23.4版本中,已经不存在这种方法,回退到之前版本pandas 0.21.0就一切完美

pip install pandas==0.21

实例:

# 简单移动平均线(SMA),又称“算数移动平均线”,是指特定期间的收盘价进行平均化
# 例:5日的均线  SMA=(C1+ C2 + C3 + C4 + C5) / 5  # Cn为数据中第n天的数

# 计算移动平均线,对每天的股票的收盘价进行计算 close指标
# pd.rolling_mean(data, window=5)  # 这种方法已经淘汰了
data.rolling(window=n).mean().plot()  # window=n n日的平均数
# 加权移动平均线(WMA):为了提高最近股票(收盘价)数据的影响,防止被平均
# 1) 末日加权移动平均线:
MA(N) = (C1+ C2 + C3 + C4 + ... + Cn *2) / (n+1)

# 2) 线性加权移动平均线(给的权重比例太大,导致最近的时间序列数据影响过大,一般不选择):
MA(N) = (C1+ C2 * 2 + C3 * 3 + C4 * 4 + ... + Cn * n) / (1 + 2 + ... + n)

# 3) 指数平滑移动平均线(EWMA):
# 提高最近的数据的比重,不存在给的过大;
# 比重都是小数,所有天书的比重加起来等于1
y=[2 * x + (N - 1) * y' ]/ (N + 1)  # x:当天的价格;N:第几天;y':上一次的EWMA结果

# pd.ewma(com=None, span=one)  # 指数平均线。com:数据;span:时间间隔
# 股票时间序列数据处理
stock_day = pd.read_csv("./data/stock_day/stock_day.csv")
stock_day.sort_index()

stock_day["index"] = [i for i in range(stock_day.shape[0])]
val = stock_day[["index", "open", "close", "high", "low"]].values

fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(20,8), dpi=80)
# K线图
candlestick_ochl(axes, val, width=0.2, colorup="r", colordown="g")

# 计算简单移动平均线,对每天的股票的收盘价进行计算 close指标
# pd.rolling_mean(stock_day["close"], window=5)  # 这种方法在pandas 0.23.4 已经淘汰了
# stock_day["close"].rolling(window=5).mean().plot()
# stock_day["close"].rolling(window=10).mean().plot()
# stock_day["close"].rolling(window=30).mean().plot()
# stock_day["close"].rolling(window=60).mean().plot()
# stock_day["close"].rolling(window=120).mean().plot()

# 画出指数平滑移动平均线
# 方法一:
stock_day["close"].ewm(span=10).mean().plot()
# 方法二:pandas 0.21.0及以下版本的使用方法
#  pd.ewma(stock_day["close"], span=10).plot()

plt.show()

在这里插入图片描述

具体在pandas 0.23.4版本中还在继续查找其方法!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java面试宝典pdf,给大家安排上!

    java面试宝典pdf,给大家安排上!前言Spring无论在Java生态系统,还是在就业市场,是绝对的王者。大厂面试出镜率之高,投产规模之广,无出其右。随着技术的发展,Spring从往日的IoC框架,已发展成CloudNative基础设施,衍生出大量Spring技术栈,如大家熟知的SpringBoot、SpringCloud和SpringSecurity等。我相信很多程序员不管是在面试中,还是在日常开发中,总会面临各种挑战和考验,唯有系统性地掌握Spring编程思想、设计理念,以及具体的实现方式,方可游刃有余

    2022年7月7日
    33
  • 如何用python制作3d游戏_【教程】12个步骤让你快速学会制作3D游戏

    如何用python制作3d游戏_【教程】12个步骤让你快速学会制作3D游戏原标题:【教程】12个步骤让你快速学会制作3D游戏Unity3D不仅是一款功能强大且易于上手的游戏引擎,更重要的是,它还可以被免费下载(它还有一个功能更强大的付费版,但其实你可以使用免费版本完成绝大部分工作)。你大可不必被它的名字误导,Unity既可以创建2d游戏也可以创建3d游戏。你可以使用C#,Java,或者一种和Python类似的称为Boo的语言进行编程。在本教程中,我将带你熟悉Un…

    2022年5月30日
    359
  • feiler包(prim算法)

    背景Weisfeiler-Lehman算法(威斯费勒-莱曼算法)是测试图同构的经典算法之一,我在这儿记录一下它的实现原理,参考文章为Weisfeiler-LehmanGraphKernels伪代码论文中的伪代码如下所示假设要测试同构的两张图为G和G`,那么在结点v的第i次迭代里,算法都分别做了四步处理:标签复合集定义、复合集排序、标签压缩和重标签。标签复合集定义如果是第一次迭代,v的标签复合集里只有一个元素,就是v的标签。如果不是第一次迭代,v的标签复合集元素就是v的..

    2022年4月10日
    63
  • 解决springboot 2.0集成elasticsearch 7.6.2 查询总数为10000

    解决springboot 2.0集成elasticsearch 7.6.2 查询总数为10000小伙伴们,你们好,我是老寇据查询相关资料,在elasticsearch7.x以后的版本,当查询的结果总数大于1万时,默认total返回总数为10000在kibana获取真实总数,只需要加添加track_total_hits参数{“query”:{“match_all”:{}},”track_total_hits”:true}在springboot项目中,增加配置//获取真实总数searchSourceBuilder.trackTotalHit

    2022年5月25日
    41
  • 直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理

    直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理直方图均衡化的原理及实现一、直方图1.1直方图的概念在图像处理中,经常用到直方图,如颜色直方图、灰度直方图等。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的率。如下图所示1.2直方图的性质①直方图反映了图像中的灰度分布规律。它描述每个灰度级具有的像素个数,但不包含这些像素在图像中的位置信息。图像直方图不关心像

    2022年8月30日
    3
  • 打开Android Studio报错 “required plugin “Android Support” is disabled”>

    打开Android Studio报错 “required plugin “Android Support” is disabled”>

    2021年9月30日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号