icney 2022-02-15 10:28 采纳率: 100%
浏览 38
已结题

【Python】关于想在表格里提取同种代码的股票,然后各自去运行命令,结果没有很好的思路

问题遇到的现象和发生背景

本来计算了MACD指标,但是忽然意识到取了500个不同的股票,这样的话i是累次增长的?所以我想是不是应该分别提取出来不同代码的股票,再去计算想算的指标,但是没有什么实现的办法。

问题相关代码(这个就是算MACD的代码)
import pandas as pd
import numpy as np
import datetime
import time
new_total=new_total.rename(columns={'月收盘价':'close'})  #改变列名,方便后续操作
def get_EMA(close,N):
    ema = []                  
    for i in range(len(close)):   
        if i==0:
            ema.append(0) 
        if i>0:
            ema.append(round((2*close[i]+(N-1)*ema[i-1])/(N+1),3))   
    return ema
def get_MACD(new_total, short=12, long=26, M=9):    
    a=get_EMA(new_total.close,short)
    b=get_EMA(new_total.close,long)
    new_total['dif']=pd.Series(a)-pd.Series(b)    
    dea = []
    for i in range(len(new_total)):     #lenclose或者new_total都可以
        if i==0:
            dea.append(0)
        if i>0:
            dea.append(round((2*new_total['dif'][i]+(M-1)*dea[i-1])/(M+1),3))  
    new_total['dea'] = dea
    new_total['macd']=2*(new_total['dif']-new_total['dea'])
    return new_total
get_MACD(new_total,12,26,9)
new_total
运行结果及报错内容

其实就是发现了之前说的问题,但是没有解决的办法,于是想问一下大家,谢谢大家♥♥

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-HGJ 2022-02-15 13:15
    关注

    思路是:先对原数据按证券代码和时间排序切片分组,遍历分组,在get_MACD函数里,第一个参数用每个子数据框,函数里用列表添加方法或数据框添加方法来解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条