Sta*_*tan 5 python datetime pandas
我正在使用 Python 3.6,并且在获取从周日开始的周数时遇到问题。
如何在 Python 中找到从周日开始的周数?
t1 = datetime.datetime.now()
t1.strftime("%U")
Run Code Online (Sandbox Code Playgroud)
例如, on09/16/2018 Sunday
它应该给出WW38
而不是WW37
它现在给出的。
我看到 、"%U"
和"%V"
都"%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
Run Code Online (Sandbox Code Playgroud)
每次我创建 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)
Run Code Online (Sandbox Code Playgroud)
解决方法可能是添加一天df['time']
,然后获取一周。像这样,如果您在星期日,则在星期一添加一天,并且获得星期一的那一周将是您要查找的那一周,而对于其他日子,它不会改变任何内容,例如:
df['WW'] = (df['time'] + pd.Timedelta(days=1)).dt.week
Run Code Online (Sandbox Code Playgroud)
编辑:感谢@pygo,您可以使用pd.Dateoffset
添加一天而不是pd.Timedelta
诸如:
df['WW'] = (df['time'] + pd.DateOffset(days=1)).dt.week
Run Code Online (Sandbox Code Playgroud)
你会得到预期的结果:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3479 次 |
最近记录: |