Skip to content
Advertisement

Get a week startdate from week number for entire dateframe in python

I am looking for week start date for entire date frame , with format of dd-mm-yyyy,

Below week number :(src_data[‘WEEK’])

28
29
30
31
32
33
34
35

code :

src_data['firstdayofweek'] = datetime.datetime.strptime(f'{2020}-W{int(src_data['WEEK'] )- 1}-1','%Y-W%W-%w').date()

Output :

28   06-07-2020
29  13-07-2020
30  20-07-2020
31  27-07-2020
32  03-08-2020
33  10-08-2020
34  17-08-2020
35  24-08-2020

Thanks in advance

Advertisement

Answer

You can add a year and weekday as strings and parse to_datetime with the appropriate directives (see also here). If desired, convert to string with strftime:

src_data = pd.DataFrame({'WEEK':[28,29,30,31,32,33,34,35]})

year, weekday = '2020', '1'

src_data['DATE'] = pd.to_datetime(year + src_data['WEEK'].astype(str) + weekday,
                                  format='%G%V%u').dt.strftime('%d-%m-%Y')

# src_data
#    WEEK        DATE
# 0    28  06-07-2020
# 1    29  13-07-2020
# 2    30  20-07-2020
# 3    31  27-07-2020
# 4    32  03-08-2020
# 5    33  10-08-2020
# 6    34  17-08-2020
# 7    35  24-08-2020
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement