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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS,CSS是前端,JAVA PHP ASP是后端,数据库是后端的处理对象,非代表前后底

    JS,CSS是前端,JAVA PHP ASP是后端,数据库是后端的处理对象,非代表前后底大海-mysql-oracle(529513481)  19:02:18象我这边,前台都是php,而php做数据分析是不太理想的,做中间件没人力,难办横瓜(601069289) 19:20:15 用C写中间件D,PHP再调用D横瓜(601069289) 19:20:31 用C写中间件D,PHP再调用D横瓜(601069289) 19:20:3…

    2022年4月29日
    48
  • python开发h5页面_大数据和python有关吗

    python开发h5页面_大数据和python有关吗文章目录前言HDF与h5简介数据组织方式HDFView下载与安装在WIN10系统安装后打开出现黑框闪退的解决方法python对h5文件的操作批量制作h5文件h5文件的提取,另存为nii文件前言一般来说,深度学习的训练数据和训练后的参数都会保存为h5格式文件,对于训练数据来说,深度学习中当训练大量数据时,如果从硬盘中加载再预处理,再传递进网络,这是一个非常耗时的过程。其中从硬盘中读取图片会花费大量时间,更可行在方法是将其存在单个文件中,如h5文件。那么h5文件对于深度学习训练具有什么优势呢?可以支持

    2025年9月12日
    6
  • java中Scanner类nextLine()和next()的区别和使用方法

    java中Scanner类nextLine()和next()的区别和使用方法在实现字符窗口的输入时,扫描器Scanner非常实用,操作起来也比较简单。在今天编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是这两种方法究竟有什么区别呢?我查了一些资料总结了一下,希望对大家有所帮助。           在实现字符窗口的输入时,扫描器Scanner非常实用,操作起来也比较简单。

    2022年6月12日
    33
  • 数据可视化与解读_大数据可视化概念

    数据可视化与解读_大数据可视化概念前言数据可视化,是指将相对晦涩的的数据通过可视的、交互的方式进行展示,从而形象、直观地表达数据蕴含的信息和规律。早期的数据可视化作为咨询机构、金融企业的专业工具,其应用领域较为单一,应用形态较为保守。步入大数据时代,各行各业对数据的重视程度与日俱增,随之而来的是对数据进行一站式整合、挖掘、分析、可视化的需求日益迫切,数据可视化呈现出愈加旺盛的生命力,表现之一就是视觉元素越来越多样,从朴素的柱状图/

    2022年10月2日
    1
  • java二维数组初始化的三种方式「建议收藏」

    java二维数组初始化的三种方式「建议收藏」有些知识觉得很简单,但其中一些细节性的东西我们未必知道,比如说数组的定义以及初始化的方式。下面主要介绍下二位数组初始化的三种方式1、定义数组的同时使用大括号直接赋值,适合数组元素已知的情况2、定义二维数组的大小,然后分别赋值3、数组第二维的长度可变化//第一种方式:定义的同时大括号直接复制int[][]array1={{1,3,1},{…

    2022年5月9日
    89
  • java有什么作用_Java有什么用「建议收藏」

    java有什么作用_Java有什么用「建议收藏」1.可以62616964757a686964616fe58685e5aeb931333431353261做WEB系统,如网站,不过做网站就有点杀鸡用牛刀了。用的最多的就是用JAVA做管理系统,很容易维护。2。可以做C/S非WEB管理系统,当然其他语言也能做到。3。可以做移动设备软件,如手机软件,MP4软件等等。4。当然你WINDOWS下做好了一个东西,拿到其他地方也能用,如LINUX,NUIX等等…

    2022年7月8日
    18

发表回复

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

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