2017-04-04 18 views
1

xlwingsを使用して簡単なテクニカルアナリシスインジケータを複製しようとしています。ただし、リスト/データはExcelの値を読み取ることができないようです。なければならないリストインデックスを下記コードExcel xlwingsデータ入力(Pythonテクニカルインジケータ)

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 

Iは、Excelデータのリストを入力している:EMA =({1,2,3,4,5}は、5}、Iは、次のエラーメッセージ はTypeErrorを得ます(EMA_ '+ str(n))

(エキスパートエキスパートではありません)EMA = pd.Series(pd.ewma(df [' Close ']、span = n、min_periods = n-1) )

+0

EMA =({1,2,3,4,5:このデータフレームと

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

コールEMA() }、5}は有効なPython構文ではありません。修正してください。私はEMA([1、2、3、4、5]、5)などと呼んでいると仮定します。 – acidtobi

答えて

1

EMA()は、DataFrame dfとスカラーnを想定しており、ソースDataFrameの別の列にEMAを返します。単純な値のリストを渡していますが、これは動作しません。

データフレームを構築し、閉じるカラムに値を割り当てる:

EMA(df, 5) 
関連する問題