Python-AttributeError: module ‘pandas‘ has no attribute ‘ewma‘报错解决方法
将
ewma60=pd.ewma(aapl_px,span=60)
改为
ewma60 = pd.DataFrame.ewm(aapl_px,span=60).mean()
ATR = pd.Series(TR_s.ewm(span=n, min_periods=n).mean())
UpI = pd.Series(UpI)
DoI = pd.Series(DoI)
# PosDI = pd.Series(pd.ewma(UpI, span=n, min_periods=n - 1) / ATR)
# NegDI = pd.Series(pd.ewma(DoI, span=n, min_periods=n - 1) / ATR)
# ds = pd.Series(pd.ewma(abs(PosDI - NegDI) / (PosDI + NegDI), span=n_ADX, min_periods=n_ADX - 1), name=xnam)
PosDI = pd.Series(UpI.ewm(span=n, min_periods=n - 1).mean() / ATR)
NegDI = pd.Series(DoI.ewm(span=n, min_periods=n - 1).mean()/ ATR)
ds = pd.Series(abs(PosDI - NegDI) / (PosDI + NegDI).ewm(span=n_ADX, min_periods=n_ADX - 1).mean(), name=xnam)
import logging
import pandas as pd
import numpy as np
log = logging.getLogger(__name__)
def moving_average(df, n):
"""计算股价的moving average.
参考: https://blog.csdn.net/FrankieHello/article/details/85938381
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
MA = pd.Series(df['close'].rolling(n, min_periods=n).mean(), name='MA_' + str(n))
df = df.join(MA)
return df
def exponential_moving_average(df, n):
"""
计算股价的exponential moving average
参考:https://www.cnblogs.com/wuliytTaotao/p/9479958.html
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
EMA = pd.Series(df['close'].ewm(span=n, min_periods=n).mean(), name='EMA_' + str(n))
df = df.join(EMA)
return df
def momentum(df, n):
"""
计算动力
参考:http://www.waihuibang.com/fxschool/technical/54505.html
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
M = pd.Series(df['close'].diff(n), name='Momentum_' + str(n))
df = df.join(M)
return df
def rate_of_change(df, n):
"""
计算变化率
参考:https://www.tradingview.com/wiki/Rate_of_Change_(ROC)
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
M = df['close'].diff(n - 1)
N = df['close'].shift(n - 1)
ROC = pd.Series(M / N, name='ROC_' + str(n))
df = df.join(ROC)
return df
def average_true_range(df, n):
"""
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
i = 0
TR_l = [0]
while i < df.index[-1]:
TR = max(df.loc[i + 1, 'high'], df.loc[i, 'close']) - min(df.loc[i + 1, 'low'], df.loc[i, 'close'])
TR_l.append(TR)
i = i + 1
TR_s = pd.Series(TR_l)
ATR = pd.Series(TR_s.ewm(span=n, min_periods=n).mean(), name='ATR_' + str(n))
df = df.join(ATR)
return df
def bollinger_bands(df, n):
"""
计算bolling bands
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
MA = pd.Series(df['close'].rolling(n, min_periods=n).mean())
MSD = pd.Series(df['close'].rolling(n, min_periods=n).std())
b1 = 4 * MSD / MA
B1 = pd.Series(b1, name='BollingerB_' + str(n))
df = df.join(B1)
b2 = (df['close'] - MA + 2 * MSD) / (4 * MSD)
B2 = pd.Series(b2, name='Bollinger%b_' + str(n))
df = df.join(B2)
return df
def stochastic_oscillator_k(df):
"""
:param df: pandas.DataFrame
:return: pandas.DataFrame
"""
SOk = pd.Series((df['close'] - df['low']) / (df['high'] - df['low']), name='SO%k')
df = df.join(SOk)
return df
def stochastic_oscillator_d(df, n):
"""
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
SOk = pd.Series((df['close'] - df['low']) / (df['high'] - df['low']), name='SO%k')
SOd = pd.Series(SOk.ewm(span=n, min_periods=n).mean(), name='SO%d_' + str(n))
df = df.join(SOd)
return df
def macd(df, n_fast, n_slow):
"""Calculate MACD, MACD Signal and MACD difference
:param df: pandas.DataFrame
:param n_fast:
:param n_slow:
:return: pandas.DataFrame
"""
EMAfast = pd.Series(df['close'].ewm(span=n_fast, min_periods=n_slow).mean())
EMAslow = pd.Series(df['close'].ewm(span=n_slow, min_periods=n_slow).mean())
MACD = pd.Series(EMAfast - EMAslow, name='MACD_' + str(n_fast) + '_' + str(n_slow))
MACDsign = pd.Series(MACD.ewm(span=9, min_periods=9).mean(), name='MACDsign_' + str(n_fast) + '_' + str(n_slow))
MACDdiff = pd.Series(MACD - MACDsign, name='MACDdiff_' + str(n_fast) + '_' + str(n_slow))
df = df.join(MACD)
df = df.join(MACDsign)
df = df.join(MACDdiff)
return df
def ease_of_movement(df, n):
"""Ease of Movement for given data.
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
EoM = (df['high'].diff(1) + df['low'].diff(1)) * (df['high'] - df['low']) / (2 * df['volume'])
Eom_ma = pd.Series(EoM.rolling(n, min_periods=n).mean(), name='EoM_' + str(n))
df = df.join(Eom_ma)
return df
def standard_deviation(df, n):
"""计算标准差.
:param df: pandas.DataFrame
:param n:
:return: pandas.DataFrame
"""
df = df.join(pd.Series(df['close'].rolling(n, min_periods=n).std(), name='STD_' + str(n)))
return df
————————————————
版权声明:本文为CSDN博主「Alphapeople」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38241876/article/details/110129990
Python-AttributeError: module ‘pandas‘ has no attribute ‘ewma‘报错解决方法相关推荐
- 【解决问题】AttributeError: module ‘pandas‘ has no attribute ‘ewma‘报错解决方法
将 ewma60=pd.ewma(aapl_px,span=60) 改为 ewma60 = pd.DataFrame.ewm(aapl_px,span=60).mean()
- 解决问题】AttributeError: module 'pandas' has no attribute 'ewma'报错解决方法
将 ewma60=pd.ewma(aapl_px,span=60) 改为 ewma60 = pd.DataFrame.ewm(aapl_px,span=60).mean()
- AttributeError: module ‘tushare‘ has no attribute ‘get_k_data‘报错解决方法
出现标题所示错误时,出错原因是你的python文件命名成了tushare.py,python解释器解析代码的时候从你的文件里找函数未找到而报错.
- AttributeError: module 'pandas' has no attribute 'ewma'(已解决)
如题所示,这种问题一般都是模块更新过后一些函数更改了. version 0.18.0之后改成ewm()这个函数了. pd.ewm()官方文档 DataFrame.ewm(com=None, span= ...
- AttributeError: 'function' object has no attribute 'Document'报错解决
原因是函数名称和系统中的某个名称相同的,替换另外的名字就行了 报错代码: #读取docx中的文本代码示例 import docx def docx():file=docx.Document(filen ...
- Python中使用pandas报错“module 'pandas' has no attribute 'ewma'”,问题原因及解决方法
系统报错:module 'pandas' has no attribute 'ewma' 报错语句:pd.ewma(stock_data['close'], span=ma) 解决方式:将语句改为pd ...
- 出现module ‘xgboost‘ has no attribute ‘DMatrix‘的临时解决方法
出现module 'xgboost' has no attribute 'DMatrix'的临时解决方法 问题根源: 初学者或者说不太了解Python才会犯这种错误,其实只需要注意一点!不要使用任何模 ...
- Python 中文注释报错解决方法
Python 中文注释报错解决方法 参考文章: (1)Python 中文注释报错解决方法 (2)https://www.cnblogs.com/cjiong/p/5881983.html 备忘一下.
- 关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named ‘robot‘
关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot' 参考文章: (1)关于运行robot framework ...
最新文章
- Android中View如何刷新
- C语言连接MYSQL存取数据的一个例子
- 2018年春阅读计划---阅读笔记4
- linux中python安装_linux环境下的python安装过程图解(含setuptools)
- 感悟:web前端工程师该如何定位
- 编程体系结构(05):Java多线程并发
- win10系统windows hello无法设置 windows hello设置开启教程
- FTP服务器架设速成手册
- 单片机(ISIS 7 Professional):简易红绿灯代码项目
- 解决卡米,安心卸载MIUI预装软件。
- python基于Suprise模块构建推荐算法模型,实现电影、书籍等资源的推荐
- 唱歌气沉丹田怎么做 气沉丹田的口诀
- PHP 函数的完整参考手册
- kmplayer 修改快捷键——以倍速播放为例
- mysql increment_mysql中auto_increment是干什么的?
- asp.net师电子化信息库的设计与实现(源代码+论文)ASP.NET汽车销售管理系统的设计与开发(源代码+论文)
- php 判断字数,php统计字数
- 「囚徒困境」有哪些现实的例子?
- Linux学习笔记------java学习
- 【来日复制粘贴】使用公式提取数据
热门文章
- 20分钟降服Linux三剑客老大awk,让人拍案叫绝
- 构建智慧城市的“新细胞”:“未来社区”
- C语言的贪心法(大嘴法)
- 每一个想成功的程序员读一读此
- 安装visual studio后,打开excel提示安装Office自定义项出错
- android3d前行,攀登金字塔3D安卓版
- [企业管理]我父亲遇到的一个黑心老板的经历,谈一下工伤赔偿的问题
- ubuntu14.04 + caffe
- 表情包(CoreIDRAW)
- linux 随机密码更改,如何在Linux中生成EncryptDecrypt随机密码