повторная выборка фрейма данных pandas и заполнение новых строк нулем

#python-3.x #pandas #dataframe #pandas-resample

#python-3.x #панды #фрейм данных #панды-повторный пример

Вопрос:

У меня есть временной ряд в виде фрейма данных. В первом столбце указан номер недели, во втором-значения для этой недели. Первая неделя (22) и последняя неделя (48) являются нижней и верхней границами временного ряда. Некоторые недели отсутствуют, например, нет недель 27 и 28. Я хотел бы провести повторную выборку этой серии таким образом, чтобы не было пропущенных недель. Там, где была вставлена неделя, я бы хотел, чтобы соответствующее значение было равно нулю. Это мои данные:

 week value 0 22 1 1 23 2 2 24 2 3 25 3 4 26 2 5 29 3 6 30 3 7 31 3 8 32 7 9 33 4 10 34 5 11 35 4 12 36 2 13 37 3 14 38 10 15 39 5 16 40 7 17 41 10 18 42 11 19 43 15 20 44 9 21 45 13 22 46 5 23 47 6 24 48 2  

Мне интересно, можно ли этого достичь в Панд, не создавая цикл с нуля. Я изучил pd.повторный пример, но не могу достичь результатов, которые я ищу.

Ответ №1:

Я бы установил week в качестве индекса, переиндексировал с fill_value опцией:

 start, end = df['week'].agg(['min','max'])  df.set_index('week').reindex(np.arange(start, end 1), fill_value=0).reset_index()  

Выход (головка):

 week value 0 22 1 1 23 2 2 24 2 3 25 3 4 26 2 5 27 0 6 28 0 7 29 3 8 30 3