python - Python技术指标的Excel xlwings数据输入

标签 python excel pandas xlwings technical-indicator

我正在尝试使用 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} 时,我收到以下错误消息 类型错误:列表索引必须是整数,而不是 str EMA = pd.Series(pd.ewma(df['Close'], span = n, min_periods = n - 1), name = 'EMA_' + str(n))

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

最佳答案

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

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

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

使用此 DataFrame 调用 EMA():

EMA(df, 5)

关于python - Python技术指标的Excel xlwings数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43204365/

相关文章:

python - 如何忽略发送到 Django REST Framework 的 CSRF token ?

python - matplotlib savefig 线程安全吗?

python - 如何有条件地仅从底部对 numpy 数组进行子集化?

c# - 带有 OLEDB 的 C# 中的 Excel 前缀字符在更新时导致 "Data type mismatch in criteria expression"错误

ruby - 在 ruby​​ 中执行外部程序并等待其执行

excel - 如何用公式锁定单元格?

python - 如何使用 beautiful soup 获取 <ol> 的第一行并将其设为 JSON 键,而以下其余部分是列表的值?

python - 来自 Pandas 数据框的共现矩阵

python - pandas hub_table 返回空数据框

python - 如何在数据框中计算每日和每周的加类时间?