我正在使用 Python 3.6,并且在获取从周日开始的周数时遇到问题。
如何在 Python 中找到从周日开始的周数?
t1 = datetime.datetime.now()
t1.strftime("%U")
例如,关于09/16/2018 Sunday
它应该给WW38
并不是WW37
,它现在正在给予。
我看到两者"%U"
, "%V"
and "%W"
正在给予相同的。
任何帮助将不胜感激。
数据框的一小部分如下:
time value
2018/09/15 1:08:19 PM 11.87
2018/09/16 6:23:17 PM 10.794
2018/09/16 6:37:48 PM 10.313
2018/09/16 6:54:14 PM 10.578
2018/09/16 6:58:24 PM 11.057
2018/09/19 9:08:24 PM 13.09
每次我创建 WW 专栏时。问题是我希望 WW 在周日而不是周一开始。
My code:
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)
解决方法可能是增加一天df['time']
然后得到星期。像这样,如果您在星期日,则在星期一添加一天,并且获得星期一的那一周将是您要寻找的那一周,而对于其他日子,它不会改变任何内容,例如:
df['WW'] = (df['time'] + pd.Timedelta(days=1)).dt.week
EDIT:感谢@pygo,您可以使用pd.Dateoffset
添加一天而不是pd.Timedelta
例如:
df['WW'] = (df['time'] + pd.DateOffset(days=1)).dt.week
你会得到预期的结果:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)