python - комбинация год-неделя на конец или начало года - PullRequest
4 голосов
/ 11 марта 2019

Я хочу построить YYYY_WW информацию из дат (где WW - число недель). Я борюсь с окончаниями лет (началами), где часть недели может приходиться на соседний год:

import datetime
import pandas as pd

# generate range of dates and extract YYYY_WW
dates_range = pd.date_range(start='2018-12-29', end='2019-01-02')
weeks = dates_range.strftime("%Y_%V")
print(weeks)

#Index(['2018_52', '2018_52', '2018_01', '2019_01', '2019_01'], dtype='object')

2018_01 явно неверно. Любой намек на простой обходной путь?

1 Ответ

5 голосов
/ 11 марта 2019

Вы ищете директиву %G:

ISO 8601 год с столетием, представляющим год, который содержит большая часть недели ISO (% V).

Подробнее см. strftime () и strptime () .

Например:

import datetime
import pandas as pd

dates_range = pd.date_range(start='2018-12-29', end='2019-1-2')
weeks = dates_range.strftime('%G_%V')
print(weeks)
# Index(['2018_52', '2018_52', '2019_01', '2019_01', '2019_01'], dtype='object')
...