Как настроить двухнедельный интервал для значения даты-времени

#pandas #datetime #period

Вопрос:

Я пытаюсь выровнять значения дат в моем df в двухнедельный формат. Пусть 1-й 2-недельный интервал начинается с 1/1/2021, второй интервал начинается с 1/14/2021, если значение df относится к 1-му интервалу, я хотел бы видеть значение 1-го интервала.

 df = pd.date_range(start='1/1/2021', periods=45)
df.to_period('2W').start_time
 

даже если я установлю аргумент «2 Вт», в любом случае это займет одну неделю.
но если я использую функцию groupby с «2W» — она отлично работает.
Не могли бы вы, пожалуйста, помочь мне найти решение?

Мой ОТВЕТ: Я беру номер недели и преобразую его в нечетные числа. это дает мне возможность согласовать df с интервалом в 2 недели. Надеюсь, это кому-нибудь поможет 🙂

 df['registered_2W'] = (lambda x: x (x 1)%2)(df['registered'].dt.strftime("%V").astype(int)) 

 

Комментарии:

1. Помогает ли это: df = pd.date_range(start='1/1/2021', periods=45, freq='2W-FRI') ?

2. .date_range — это просто пример заполнения df значениями. Реальный df существует, и я должен изменить существующие значения даты и времени.

3. Может быть, взломать твой путь с .dt.week/2 помощью ? Затем вернитесь в другую сторону, чтобы узнать дату? Уродина, я знаю. На данный момент я не вижу хорошего ответа. Та же проблема, что и у вас.

4. @jch — это было решение, которое я использую в качестве решения: df[‘registered_2W’] = (лямбда x: x (x 1)%2)(df[‘registered’].dt.strftime(«%V»).astype(int))