【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

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

先按证券代码和时间排序
然后遍历一下,判断哪些行是相同的,取个切片出来

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632