首页 > 解决方案 > python - 一年结束或开始的年-周组合

问题描述

我想从日期构造 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显然是不正确的。任何简单的解决方法的提示?

标签: pythondatetimestrftime

解决方案


您正在寻找%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')

推荐阅读