как выровнять два кадра данных? - PullRequest
0 голосов
/ 18 марта 2019

Здравствуйте, у меня есть два DF (rateQualityOut и subsetOut):

"rateQualityOut" - это пустой DF, который я создал для хранения временного вывода "subsetOut". Идея состоит в том, что все выходные данные (после завершения цикла) должны храниться в этом DF.

rateQualityOut[['pID',   'carry_dt','position', 'product_type'  ,'positionLength']].loc[currLength:currLength+addLength,:]

   pID carry_dt position product_type  positionLength
0  NaN      NaT      NaN          NaN             NaN
1  NaN      NaT      NaN          NaN             NaN
2  NaN      NaT      NaN          NaN             NaN
3  NaN      NaT      NaN          NaN             NaN
4  NaN      NaT      NaN          NaN             NaN
5  NaN      NaT      NaN          NaN             NaN

и другой DF с временным выводом

    subsetOut

subsetOut[['pID',   'carry_dt','position', 'product_type'  ,'positionLength']]

      pID   carry_dt              position product_type  positionLength
2739    1 2018-11-01  CITI_52299G66_201210     Physical               5
2738    1 2018-11-02  CITI_52299G66_201210     Physical               5
2737    1 2018-11-05  CITI_52299G66_201210     Physical               5
2736    1 2018-11-06  CITI_52299G66_201210     Physical               5
2735    1 2018-11-07  CITI_52299G66_201210     Physical               5

Я хочу сохранить временный вывод "subsetOut" в "rateQualityOut". и то, что я сделал в прошлом, просто сделаю это:

rateQualityOut.loc[currLength:currLength+addLength,:] = subsetOut

Однако, похоже, что он работает не так, как планировалось. Выходные данные показывают, что NaN не заполнены, как ожидалось.

   pID carry_dt position product_type  positionLength
0  NaN      NaT      NaN          NaN             NaN
1  NaN      NaT      NaN          NaN             NaN
2  NaN      NaT      NaN          NaN             NaN
3  NaN      NaT      NaN          NaN             NaN
4  NaN      NaT      NaN          NaN             NaN
5  NaN      NaT      NaN          NaN             NaN

Могу ли я предложить несколько советов? Большое вам спасибо

1 Ответ

2 голосов
/ 18 марта 2019

Обычно проще и быстрее не помещать subsetOut в rateQualityOut с каждой итерацией. Вместо этого вы можете сохранить подмножества в списке и объединить их в конце:

import pandas as pd
rateQualityOut = [] #Make a list
for i in someIterator:
   #do something here
   rateQualityOut.append(subsetOut)

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