2016-01-08 2 views
0

Я пытаюсь скопировать результаты из массива в dataframe из цикла for. Тем не менее, каждый раз, когда я пытаюсь это, последнее значение цикла обновляется в dataframe:Обновление dataframe с массивом ouput

counter = 0 
sample = [1,2,5,10,15,20,30,60,120,180,240,300,360,420,480,540,600] 
columns = ['1','2','5','10','15','20','30','60','120','180','240','300','360','420','480','540','600'] 

index = df.set_index([df.index]) 
resultsDf = pd.DataFrame(columns=columns) 
resultsDf = pd.DataFrame() 
resultsDf.set_index([resultsDf.index]) 

results = [] 
for index, rowEntry in TradesGTC.iterrows():#Entry of Trade 
    entryVolume = rowEntry[26] 
    entryPrice = rowEntry[28] 
    ccyPair = rowEntry[12][0:6]  
    entryTime = rowEntry['DateTime'] 
    for data in sample:   
     exitTime = entryTime + dt.timedelta(seconds = data) 
     f = MD.between_time(entryTime,exitTime) 
     buy = entryVolume > 0 
     sell = entryVolume < 0 
     if buy == True: 
      maxBidinTimeFrame = f['bid'].max()    
      profit = (maxBidinTimeFrame - entryPrice) * entryVolume 
      results.append(profit) 
     if sell == True: 
      minAskinTimeFrame = f['offer'].min() 
      profit = (entryPrice - minAskinTimeFrame) * entryVolume 
      results.append(profit) 
     resultsDf.append(results) 

Выход, который возвращает:

resultsDf 

1 2 5 10 15 20 30 60 120 180 240 300 360 420 480 540 600 

Я ожидаю, чтобы иметь dataframe с заголовками столбцов 1 2-10 .... 600 и результаты приведены в каждом столбце спускаясь так ..

1 2 3 5 10....600 
100 200 100...-50 
. 
. 

Цените всю помощь Благодаря

+0

Сразу же я вижу, что вы перезаписать 'df' в нижней части цикла вместо добавления новых столбцов. Кроме того, правильно ли форматирование вашего вопроса? После первого цикла 'for' ничто не отступается (для' TradesGTC'). – chrisaycock

+0

Мне любопытно, почему 'resultsDf' is 'resultsDf = pd.DataFrame (columns = columns)', затем сразу же после определения его как 'resultsDf = pd.DataFrame()'. – Jarad

+0

Ребята спасибо @chrisaycock Спасибо, что форматирование было из-за копирования прошлого в stackoverflow. Я обновил вопрос, добавив результаты. Но я знаю, что заголовок столбца, но ни один из результатов. – noidea

ответ

0

Спасибо за все, но недостающий элемент в головоломке ..

resultsDf = resultsDf.append(pd.DataFrame(data = results), ignore_index=True) 
Смежные вопросы