用于Python技术指标的Excel xlwings数据input

我想用xlwings复制一个简单的技术分析指标。 但是,列表/数据似乎不能读取Excel值。 下面是代码

import pandas as pd import datetime as dt import numpy as np @xw.func def EMA(df, n): EMA = pd.Series(pd.ewma(df['Close'], span = n, min_periods = n - 1), name = 'EMA_' + str(n)) df = df.join(EMA) return df 

当我inputExcel数据列表:EMA =({1,2,3,4,5},5},我得到以下错误消息TypeError:列表索引必须是整数,而不是str EMA = pd.Series(pd .ewma(df ['Close'],span = n,min_periods = n – 1),name ='EMA_'+ str(n))

(专家)非常感谢! 谢谢。

EMA()需要一个DataFrame df和一个标量n,并且它返回源DataFrame中一个单独列中的EMA。 您正在传递一个简单的值列表,这不应该工作。

构build一个DataFrame并将值分配给Close列:

 v = range(100) # use your list of values instead df = pd.DataFrame(v, columns=['Close']) 

用这个DataFrame调用EMA():

 EMA(df, 5) 
Interesting Posts