以给定格式python获取不同日期的周数

时间:2018-03-05 11:18:59

标签: python date-conversion

我收到格式

的日期列表
Date
20180223
20180120
20180201 

我想在新专栏中获取这些周数

Date        Week_num 
20180223       8 
20180120       3 
20180210       6

用于获取日期的代码是:

yyyymmdd= (dt.datetime.today()-timedelta(days=1)+timedelta(hours=5.3)).strftime('%Y%m%d')

我需要帮助才能获得相同的周数。

2 个答案:

答案 0 :(得分:0)

您必须将日期转换回datetime.date()对象:

>>> mydate = datetime.datetime.strptime("20180223", "%Y%m%d").date()
>>> mydate
datetime.date(2018, 2, 23)

datetime.date()有一个date.isocalendar(),其中包含ISO年份,ISO周数和ISO工作日:

>>> mydate.isocalendar()
(2018, 8, 5)

正如您所看到的,元组的第二个条目是您要查找的周数。

>>> mydate.isocalendar()[1]
8

答案 1 :(得分:0)

您可以使用 .apply() 和 lambda 创建一个新的周列来影响列中的所有值。

df['week'] = df['existing_date_col'].apply(lambda x: x.isocalendar()[1])