Python Pandas означает, что конструктор DataFrame неправильно вызван - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь создать простые временные ряды разных типов прокатки.Один конкретный пример - скользящее среднее N периодов с использованием пакета Python Panda.

Я получаю следующую ошибку: ValueError: Конструктор DataFrame неправильно вызван!

Ниже приведен мой код:

def py_TA_MA(v, n, AscendType):  
    df = pd.DataFrame(v, columns=['Close'])
    df = df.sort_index(ascending=AscendType) # ascending/descending flag
    M = pd.Series(df['Close'].rolling(n), name = 'MovingAverage_' + str(n))
    df = df.join(M)
    df = df.sort_index(ascending=True) #need to double-check this
    return df

Кто-нибудь сможет посоветовать?

С уважением

1 Ответ

0 голосов
/ 30 мая 2018

нашел исправление!Это было ошибка (новая ошибка), где я должен был явно объявить n как целое число.Ниже код работает

@xw.func
@xw.arg('n', numbers = int, doc = 'this is the rolling window')
@xw.ret(expand='table')     
def py_TA_MA(v, n, AscendType):  
   df = pd.DataFrame(v, columns=['Close'])
   df = df.sort_index(ascending=AscendType) # ascending/descending flag
   M = pd.Series(df['Close'], name = 'Moving Average').rolling(window = n).mean()
   #df = pd.Series(df['Close']).rolling(window = n).mean()
   df = df.join(M)
   df = df.sort_index(ascending=True) #need to double-check this
return df
...