Как проверить, равна ли строка i фрейма данных значению? - PullRequest
0 голосов
/ 06 апреля 2019

Мне не удается решить эту проблему.

for i in range(0,len(df1.columns)):
    if df1.iloc[i:].values ==1:
        print ('Buy')
        order= True
    elif df1.iloc[i:] == -1:
        print ('Sell')
        order= True
    else:
        print ('Do nothing')
        time.sleep(30)
    if a==5:
        break

У меня есть dataframe df1, который включает в себя значения -1, 0 и 1. Поэтому в основном я пытаюсь напечатать дляПример «купить», если значение 1 появляется в кадре данных (этот код является концом цикла, перед этим каждые 30 с я устанавливаю новое значение для df)

Для возобновления:

Установите новое значение для df каждые 30 секунд (уже сделали это), проверьте, является ли это значение -1,0 или 1, напечатайте каждые 30 секунд 'buy' 'sell' или 'Ничего не делать' в соответствии с новым значением, временем сна, а затемустановить новое значение для df и т. д.

Когда я запустил приведенный выше код, он дал мне: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Привет, Мартино, спасибо за ответ.

Фильтр означает, что сигнал «купить», если его 1, «продать», если его -1, «ничего не делать», если 0. Запаздывание просто для фиксации изменений в сигнале и, наконец, strat = filter * lag.

Итак, с моими столбцами strat я занимаю свою позицию только один раз, и если сигнал остается на той же позиции, он даст 0 (ничего не делать).

Моя проблема в том, что я хочу после каждого цикла 'проверять', является ли последнее значение в кадре данных -1,1 или 0. Кажется, что вывод является логическим значением ..

df1 df1

0 голосов
/ 06 апреля 2019

Я думаю, что из-за того, что вы пытались сравнить список с одним значением, вы получили это сообщение об ошибке

нам не понятна форма вашего фрейма данных df1, поэтому я угадываю здесь, попробуйте изменить

if df1.iloc[i:].values ==1:

до

if df1.iloc[i] ==1:

, а также изменить

elif df1.iloc[i:] == -1:

на

elif df1.iloc[i] == -1:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...