Дублируйте одну и ту же строку n раз при изменении даты - PullRequest
0 голосов
/ 03 мая 2019

Я хочу продублировать строки, у которых 'Duration' = n, n раз с n больше нуля при увеличении даты до n.Вот что у меня есть

 Event StartDate  Endate      Durate

 xx   o1/o1/2018  o3/o1/2018    2
 xxx  o1/o1/2018  o2/o1/2018    1

что я хочу вот что:

Event StartDate  Endate      Durate
 xx  01/01/2018  01/01/2018    0
xx   01/01/2018  03/o1/2018    2
xx   02/01/2018  03/o1/2018    2
xxx  01/01/2018 02/01/2018     1
xxx  02/01/2018 02/o1/2018     1

Вот что я попробовал:

for i in (data['Durate']):
   for i in range(i):
      data.index:i+1= (data['StartDate']+1) + pd.DateOffset(1)

Позволяет сказать, если продолжительность 2;Я стреляю в 2 строки с увеличением startDate до продолжительности

1 Ответ

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

Вот что вы можете сделать: вы можете использовать iterrows для этого;Как это:

data_data.copy(deep=True)
for _, val in data.iterrows():

      if val['Durate'] > 0:
         count = val['Durate']

      for i in range(count):
         val['Durate'] = val['Startdate'] + pd.DateOffset(days=1)
         data_ = data_.append(val)

data_.sort_values('Event', inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...