gpt4 book ai didi

python - 在 Python 中获取从周日开始的周数的问题?

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:13 25 4
gpt4 key购买 nike

我使用的是 Python 3.6,在获取从星期日开始的周数时遇到问题。

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

t1 = datetime.datetime.now()

t1.strftime("%U")

例如,在 09/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

每次我都在创建 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)

最佳答案

解决方法是在 df['time'] 中添加一天,然后获取周数。像这样,如果你在星期天,然后添加一天带到星期一,得到星期一的那一周就是你要找的那一周,而对于其他日子它不会改变任何东西,例如:

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

编辑:感谢@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

关于python - 在 Python 中获取从周日开始的周数的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com