我收到格式
的日期列表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')
我需要帮助才能获得相同的周数。
答案 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])