我正在寻找该月的当前星期。这里已经有很多答案,但是我有以下情况:
一周从星期日至星期六
当月份更改时,应考虑大多数日期。例如,2020年3月30日是4月的第1周,因为该周中有3个日期为3月(29、30、31),但有4个日期为4月(1、2、3、4)。
示例开始日期和结束日期如下所示:
start date end date
Jan 1 12/29/2019 2/1/2020
Feb 2 2/2/2020 2/29/2020
Mar 3 3/1/2020 3/28/2020
Apr 4 3/29/2020 5/2/2020
May 5 5/3/2020 5/30/2020
Jun 6 5/31/2020 6/27/2020
Jul 7 6/28/2020 8/1/2020
Aug 8 8/2/2020 8/29/2020
Sep 9 8/30/2020 9/26/2020
Oct 10 9/27/2020 10/31/2020
Nov 11 11/1/2020 11/28/2020
Dec 12 11/29/2020 12/26/2020
我正在通过pd.merge进行此操作,其中我已经创建了1年的完整表格,可以查找并找到日期,但是我正在寻找不需要每年更新的自动化内容。
答案 0 :(得分:0)
我创建了完整的年度表,如下所示: (为了节省空间,我将下面的数据框截短了,但是一直持续到年底为止)
df_week
Month Week 1 2 3 4 5 6 7
0 Jan W1 2019-12-29 2019-12-30 2019-12-31 2020-01-01 2020-01-02 2020-01-03 2020-01-04
1 Jan W2 2020-01-05 2020-01-06 2020-01-07 2020-01-08 2020-01-09 2020-01-10 2020-01-11
2 Jan W3 2020-01-12 2020-01-13 2020-01-14 2020-01-15 2020-01-16 2020-01-17 2020-01-18
3 Jan W4 2020-01-19 2020-01-20 2020-01-21 2020-01-22 2020-01-23 2020-01-24 2020-01-25
4 Jan W5 2020-01-26 2020-01-27 2020-01-28 2020-01-29 2020-01-30 2020-01-31 2020-02-01
5 Feb W1 2020-02-02 2020-02-03 2020-02-04 2020-02-05 2020-02-06 2020-02-07 2020-02-08
6 Feb W2 2020-02-09 2020-02-10 2020-02-11 2020-02-12 2020-02-13 2020-02-14 2020-02-15
然后我使用了以下内容:
# Finds today's date in YYYY-MM-DD format
>d = dt.datetime.today().strftime("%Y-%m-%d")
#Find matching row in complete dataframe corresponding to the current date
>cal_week = df_week[df_week.eq(d).any(1)]["Week"].iat[0]
>cal_week
W2