获取索引器:当试图将技术指标应用于股票信息的数据帧时,单个位置索引器处于边界之外

2024-03-28 18:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,在使用pandas_ta扩展将一些技术指标应用于股票信息的数据框架时遇到了一些问题。原始数据帧“nonStockdf”由列构成

['index', 'date', 'ticker', 'adj_close', 'close', 'open', 'high', 'low',
       'volume', 'EMA_9', 'EMA_50', 'EMA_200', 'RSI_14', 'MACD_12_26_9',
       'MACDH_12_26_9', 'MACDS_12_26_9'],
      dtype='object')

并拥有5年前约50只股票、指数和期货的历史数据。我试图将一些技术指标作为新列应用到现有的数据帧中,并保存在一个名为nonStockTechsdf的新数据帧中,但不断得到IndexError: single positional indexer is out-of-bounds。有人能帮忙吗??我的代码如下。提前谢谢

ETF_Daily = ['SPY', 'DIA', 'QQQ', 'IWM', 'VXX', 'UVXY', 'EWZ', 'FXI', 'USO', 'HYG', 'EWJ', 'TLT', 'SLV', 'GLD', 'LQD', 'UNG', 'EWH', 'VGK', 'FEZ', 'TBT', 'EWW', 'EWC', 'EMB', 'UUP', 'GDX', 'GDXJ', 'IBB', 'ITB', 'IYE', 'IYR', 'KBE', 'KRE', 'OIH', 'SMH', 'VNQ', 'XHB', 'XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLU', 'XLV', 'XLY', 'XME', 'XOP', 'XRT', 'XTL', 'TBT', 'DBC', '^GSPC', '^DJI', '^IXIC', '^NYA', '^XAX', '^RUT', '^VIX', '^FTSE', '^GDAXI', '^FCHI', '^N100', '^N225', 'GC=F', 'SI=F','HG=F', 'CL=F', 'BZ=F', 'NG=F', 'ZC=F', 'ZO=F', 'KE=F', 'ZR=F', 'ZS=F', 'GF=F', 'HE=F', 'LE=F', 'CC=F', 'KC=F', 'CT=F', 'LB=F', 'OJ=F', 'SB=F', 'AW=F', 'DX=F', 'BTCUSD=X', 'ETHUSD=X', 'EURUSD=X', 'JPY=X', 'GBPUSD=X', 'AUDUSD=X', 'NZDUSD=X', 'CNY=X', 'HKD=X', 'SGD=X', 'INR=X', 'MXN=X', 'PHP=X', 'IDR=X', 'THB=X', 'MYR=X', 'ZAR=X', 'RUB=X']

nonStockTechsdf = pd.DataFrame()

for i in ETF_Daily:
    df = nonStockdf.loc[nonStockdf['ticker'] == i]
    df.ta.ema('close', length=9, append=True)
    df.ta.ema('close', length=50, append=True)
    df.ta.ema('close',length=200, append=True)
    df.ta.rsi('close',n=14, append=True)
    df.ta.macd('close',slow=26, fast=12, sign=9, append=True)
    nonStockTechsdf = nonStockTechsdf.append(df)

Tags: 数据truedfcloselength股票ticker技术指标