Цикл данных останавливается - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь перебрать фрейм данных с помощью условных операторов.

Я попытался разделить цикл, и все они работают по отдельности;однако при объединении цикл останавливается после 1 итерации.

i=0 
stock = 100
cash = 0

for index, row in df2.iterrows(): 
    if df2.iloc[i][3] > df2.iloc[i+1][3]:          
        if stock == 0:                             #future stock is cheaper, but no stock to sell
           continue 
        else:
            cash = cash + df2.iloc[i][3] * stock   #future stock is cheaper, so sell
            stock = 0 
    else:                                          #future stock is more expensive, so buy 
        stock = round((cash/df2.iloc[i][3])-0.5) 
       cash = round((cash - stock*df2.iloc[i][3])-0.5)
    i+=1
i

печать я даю только 1, когда должен дать список чисел (то есть цикл остановился после одной итерации)

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Кажется, вы используете цикл над df2 строками, но вы не используете свои index и row в любом месте цикла.Если вы пытаетесь перебрать все строки в вашем df2, то я бы предложил:

i=0 
stock = 100
cash = 0

for i in range(df2.shape[0]-1): # iterate over all rows except last iloc[i+1] is the last
    if df2.iloc[i][3] > df2.iloc[i+1][3]:          
        if stock == 0:                             #future stock is cheaper, but   no stock to sell
           continue 
        else:
            cash = cash + df2.iloc[i][3] * stock   #future stock is cheaper, so sell 
            stock = 0 
    else:                                          #future stock is more expensive, so buy 
        stock = round((cash/df2.iloc[i][3])-0.5) 
        cash = round((cash - stock*df2.iloc[i][3])-0.5)
print(i)
0 голосов
/ 20 мая 2019

Поскольку вы печатаете вне цикла for, вы не получите список чисел, а только последнее значение i

Также, возможно, это ошибка копирования / вставки, но у вас есть отступдо stock = round((cash/df2.iloc[i][3])-0.5) слишком много.

Можете ли вы привести пример того, что находится внутри вашего фрейма данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...