Привет, у меня есть следующие данные: указатель, день недели, неделя нет, феча
360 Friday 52 2019-12-27
361 Saturday 52 2019-12-28
362 Sunday 53 2019-12-29
363 Monday 53 2019-12-30
364 Tuesday 53 2019-12-31
365 Wednesday 1 2020-01-01
366 Thursday 1 2020-01-02
367 Friday 1 2020-01-03
368 Saturday 1 2020-01-04
369 Sunday 2 2020-01-05
370 Monday 2 2020-01-06
Хотелось бы: - неделя, в которой первое января будет неделей № 1 - чтобы недели начинались в воскресенье - иметь неделю № 1 как полную неделю из 7 дней, то есть 29, 30 и 31 декабря, чтобы также получить неделю № 1. - чтобы это работало также, когда у меня много лет в этом наборе данных.
В этом конкретном году это означает изменение всех 53 на 1, но я думаю, что могут быть и другие годы, когда это не сработает. Таким образом, чтобы получить общее правило, я понял, что если первое января выпадает на воскресенье, мне не нужно ничего менять, поэтому я решил сначала проверить это на каждый год, и если первое января не выпадает на воскресенье, изменить все номера недели между предыдущим воскресеньем и этим воскресеньем на 1. Другой вариант, о котором я подумал, - это узнать, какой недели нет в предыдущем воскресенье, а затем изменить все номера недели этого года с тем же номером, что и в предыдущее воскресенье, 1. Для обоих я должен был бы выполнить условие внутри df, чтобы отфильтровывать только определенные строки, но как мне это сделать, когда я хочу отобразить только один столбец этого df? Смысл, если бы я сделал:
totals[(totals['Fecha'].dt.month==1) & (totals['Fecha'].dt.day==1) & (totals['Fecha'].dt.year==i)]
тогда это будет показывать все столбцы в итоговых значениях, в то время как я хотел бы и эти условия и видеть только столбец «День недели».
Так как бы мне это сделать, а также, все это звучит очень сложно для меня. Есть ли более простой / эффективный способ, который я упустил?
Спасибо!