#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))