用于Python技术指标的Excel数据输入

2024-05-13 14:18:15 发布

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

我试图用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

当我输入一个excel数据列表:EMA=({1,2,3,4,5},5})时,我得到以下错误消息 TypeError:列表索引必须是整数,而不是str EMA=pd系列(pd.ewma公司(df['Close'],span=n,min\u periods=n-1),name='EMA\u'+str(n))

(专家)非常感谢您的帮助!谢谢。你知道吗


Tags: 数据nameimportdf列表closeasmin
1条回答
网友
1楼 · 发布于 2024-05-13 14:18:15

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

构造数据帧并将值赋给Close列:

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

使用此数据帧调用EMA():

EMA(df, 5)

相关问题 更多 >