在Python中从星期日开始获取周数的问题?

2024-06-06 22:50:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python3.6,从周日开始获取周数时遇到问题。在

如何在Python中找到星期日开始的周数?在

t1 = datetime.datetime.now()

t1.strftime("%U")

例如,在09/16/2018 Sunday上,它应该给出WW38,而不是{},它现在给出的是这个。在

我发现"%U""%V"和{}都给出了相同的结果。在

任何帮助都将不胜感激。在

数据帧的一个小片段如下:

^{pr2}$

每次我创建WW专栏时。。问题是我希望WW在星期天开始,而不是星期一。在

我的代码:

ww_l =[]
for date in df['time']:  
  date_v = datetime.strptime(tv, "%Y-%m-%d %H:%M:%S")  
  curr_ww = datetime.date(date_v).strftime("%W")   
  ww_l.append(curr_ww)
df['WW'] = pd.DataFrame(ww_l)

Tags: 数据dfdatetimedatenowt1wwsunday
2条回答

您可以将一周中的第一天(要设置为星期日)设置如下:

    import calendar
    calendar.setfirstweekday(calendar.SUNDAY)

可以找到文档here

一种解决办法是在df['time']添加一天,然后获得一周。像这样,如果您是在星期天,那么添加一天“带到星期一”,得到的星期一将是您要查找的星期一,而对于其他日期,它不会更改任何内容,例如:

df['WW'] = (df['time'] + pd.Timedelta(days=1)).dt.week

编辑:多亏了@pygo,您可以使用pd.Dateoffset代替pd.Timedelta添加一天,例如:

^{pr2}$

你就像预期的那样:

print (df)
                 time   value  WW
0 2018-09-15 13:08:19  11.870  37
1 2018-09-16 18:23:17  10.794  38
2 2018-09-16 18:37:48  10.313  38
3 2018-09-16 18:54:14  10.578  38
4 2018-09-16 18:58:24  11.057  38
5 2018-09-19 21:08:24  13.090  38

相关问题 更多 >