Search code examples
pandastimedelta

Getting start date of week from week number


I have a list like this lst = [25,26,27]

numbers: 25, 26, 27 are the week number.

For each number from list I would like to have a start date, e.x. for week 25 the start date is 2022-06-21 (week starts on Monday).

Please, can someone help?

I have tried sth like

import datetime
from dateutil.relativedelta import relativedelta
week = 25
year = 2021
date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
print(date) 

but it doesn;t work.


Solution

  • IIUC, you can use to_datetime:

    lst = [25,26,27]
    year = 2021
    
    out = pd.to_datetime(pd.Series(lst).astype(str)+str(year)+'Mon', format='%W%Y%a')
    

    output:

    0   2021-06-21
    1   2021-06-28
    2   2021-07-05
    dtype: datetime64[ns]
    

    intermediate:

    pd.Series(lst).astype(str)+str(year)+'Mon'
    
    0    252021Mon
    1    262021Mon
    2    272021Mon
    dtype: object