Я пытаюсь обновить идентификатор фрейма данных относительно столбца пропущенных дней в фрейме данных,
Date ID
0 2018-01-01 45.0-A
1 2018-01-02 45.0-A
5 2018-01-06 45.0-A
6 2018-01-07 45.0-A
12 2018-01-13 45.0-A
13 2018-01-14 45.0-A
period = 2
Если у фрейма данных больше, чем указано period (period =2 )
из days missing
ID должен быть обновленс дополнительным числом я решил эту проблему с разницей во времени и циклически перебирал данные, это занимает больше времениМожет кто-нибудь предложить мне наиболее эффективный способ достижения этого?
T_diff = data.Date.diff()
slic = [data.index[0]] + T_diff[T_diff.dt.days>period].index.tolist() + [data.index[-1]]
li = []
for i in range(len(slic)-1):
temp_df = data.loc[slic[i]:slic[i+1]].copy()
temp_df['ID'] = temp_df['ID'] + '_{}'.format(i)
li.append(temp_df)
pd.concat(li,axis=0)
Date ID
0 2018-01-01 45.0-A_0
1 2018-01-02 45.0-A_0
5 2018-01-06 45.0-A_1
6 2018-01-07 45.0-A_1
12 2018-01-13 45.0-A_2
13 2018-01-14 45.0-A_2