我的Orignal数据框如下:

Date C

0 a

1 b

2 c

3 d

这是股票数据.

0,1,2,3是次,C:关闭是浮点数.

我需要能够将EMA(指数移动平均线)的列添加到通过从当前C列计算得到的orignal数据帧

和之前的新专栏(‘EMA’).

所以结果应该是这样的

C EMA

0 a start value as ema0

1 b (ema0*alpha) + (b * (1-alpha)) as ema1

2 c (ema1*alpha) + (c * (1-alpha)) as ema2

3 d (ema2*alpha) + (d * (1-alpha)) as ema3

4 e (ema3*alpha) + (e * (1-alpha)) as ema4

... ... ....

起始值是一个简单的平均值,所以我尝试了以下方法.

这是创造起始价值的第一个条件

但在计算EMA值时,它不适用于第二个条件.

ema_period = 30

myalpha = 2/(ema_period+1)

data['EMA'] = np.where(data['index'] < ema_period,data['C'].rolling(window=ema_period, min_periods=ema_period).mean(), data['C']*myalpha +data['EMA'].shift(1)*(1-myalpha) )

最佳答案 附带图片中所需的EWMA:

码:

ema_period = 12 # change it to ema_period = 30 for your case

myalpha = 2/(ema_period+1)

# concise form : df.expanding(min_periods=12).mean()

df['Expand_Mean'] = df.rolling(window=len(df), min_periods=ema_period).mean()

# obtain the very first index after nulls

idx = df['Expand_Mean'].first_valid_index()

# Make all the subsequent values after this index equal to NaN

df.loc[idx:, 'Expand_Mean'].iloc[1:] = np.NaN

# Let these rows now take the corresponding values in the Close column

df.loc[idx:, 'Expand_Mean'] = df['Expand_Mean'].combine_first(df['Close'])

# Perform EMA by turning off adjustment

df['12 Day EMA'] = df['Expand_Mean'].ewm(alpha=myalpha, adjust=False).mean()

df

获得EWMA:

DF结构:

index = ['1/2/2013','1/3/2013','1/4/2013','1/7/2013','1/8/2013','1/9/2013', '1/10/2013','1/11/2013',

'1/14/2013','1/15/2013','1/16/2013','1/17/2013','1/18/2013','1/22/2013','1/23/2013',

'1/24/2013','1/25/2013','1/28/2013','1/29/2013','1/30/2013']

data = [42.42, 43.27, 43.66, 43.4, 43.4, 44.27, 45.01, 44.48, 44.34,

44.44, 44.08, 44.16, 44.04, 43.74, 44.27, 44.11, 43.93, 44.35,

45.21,44.92]

df = pd.DataFrame(dict(Close=data), index)

df.index = pd.to_datetime(df.index)

python计算ema_python – 添加一个列(EMA),它是pandas中先前新列值的结果相关推荐

  1. python按列输出字符_如何根据条件在Pandas中构建新列(新列应输出字符串)

    我尝试在pandas中创建一个专栏,使用条件来创建一个定性观察.在 例如,如果数据帧如下所示:Distance 1 1 2 5 3 40 4 15 我想创建一个新列(我们称之为df['length'] ...

  2. GDCM:转储一个DICOM文件,显示DICOM中的结构和值的测试程序

    GDCM:转储一个DICOM文件,显示DICOM中的结构和值 GDCM:转储一个DICOM文件,显示DICOM中的结构和值 GDCM:转储一个DICOM文件,显示DICOM中的结构和值 #includ ...

  3. python 新建一列_python – 如何处理列名称和创建新列

    这是我的pandas DataFrame,带有原始列名. old_dt_cm1_tt old_dm_cm1 old_rr_cm2_epf old_gt 1 3 0 0 2 1 1 5 >首先,我 ...

  4. python筛选包含特定值的行_使用pandas筛选出指定列值所对应的行

    在pandas中怎么样实现类似mysql查找语句的功能: select * from table where column_name = some_value; pandas中获取数据的有以下几种方法 ...

  5. python删除空值多于50%的行_删除Pandas中“空”值超过60%的列

    我有一个这样的数据框:import pandas as pd data = { 'c1': ['Test1','Test2','NULL','Test3',' ','Test4','Test4','T ...

  6. python中读取指定的行和列_Python怎么获取excle中指定行和列的值?

    ''' https://www.cnblogs.com/xiazhenyu/ *** 学而思之.思而记之.记而习之 *** ''' f="dict_file.txt" #定义文件名 ...

  7. python年龄阶段划分_在Python Pandas中对年龄列进行分组/分类

    我有一个数据框说df. df有一列'Ages' >>> df['Age'] 我想分组这个年龄并创建一个类似这样的新列 If age >= 0 & age < 2 ...

  8. Bootstrap网格系统工作原理、网格系统前缀、利用网格系统实现导航栏效果、栅格系统中的列嵌套、栅格系统中的列偏移、栅格系统中的自动布局列、栅格系统中的重排序、模仿淘宝网站商品展示的页面效果

    Bootstrap 网格系统 1.Bootstrap网格系统工作原理 Bootstrap的网格系统是指将页面布局划分为等宽的列.随着屏幕或视口尺寸的增加,系统会自动分为1~12列. 网格系统用于通过一 ...

  9. mysql 临时列_如何在MySQL中列出临时表列?

    要列出MySQL中的临时表列,让我们首先创建一个临时表. 这是一个例子.我们创建了一个临时表,其中包含一些列,其中包括学生的详细信息-mysql> CREATE TEMPORARY TABLE  ...

最新文章

  1. 记一次MySQL字符集冲突导致的报错
  2. mysql 数据库引擎切花_asyncio异步编程【含视频教程】
  3. 无线电能接收初步测试
  4. Java 实现MapReduce函数
  5. 一个项目涉及到的50个Sql语句(整理版)
  6. Android 系统(216)---Android坐标分析过程
  7. [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码)
  8. Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
  9. Qt-网易云音乐界面实现-3 音乐名片模块的实现
  10. Leetcode 刷题笔记(十一) —— 栈与队列篇之 top-K 问题
  11. java用链表 编写记事本_(超详细) 动手编写 — 链表 (Java实现)
  12. c++中的243、251、250错误原因
  13. 射频微波芯片设计3:射频微波芯片设计基础知识
  14. 乐优商城项目实战系列笔记1-项目搭建
  15. 计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告...
  16. JDK动态代理和CGLIB动态代理
  17. java 工作流 轻量级,java轻量级工作流框架
  18. Linux定时任务的基础操作
  19. [计算机组成原理]定点数运算及溢出检测
  20. mac mysql mysqldb_在 Mac 中安装 MySQLdb (Python mysql )

热门文章

  1. 数学建模笔记——插值拟合模型(二)
  2. 使用ngrok对黑群晖进行内网穿透/公网访问
  3. Android图片选择器 图片裁剪
  4. Kubernetes网络技术解析之Pod基于路由模式的通信实现
  5. 程序员开发的常用21个开发工具(总结篇)
  6. 模糊综合评价法资料连接
  7. 跳帧的计算机原理,光电鼠标基础知识浅解(22页)-原创力文档
  8. Java 8 辣么大(lambda)表达式不慌之—–(四)示例-Collectors中的中的joining 方法和mapping方法
  9. WindowsServer2016配置故障转移群集
  10. 电工结业试卷_电工学试卷A答案.docx