CYBER WEEK - EXTRA SAVINGS EVENT
TRY A FREE LESSON

How do I extract last day of week from yyyyww column in python

I have a df_mixed column containing data in yyyyww format, eg: 201501, 201502…etc
I have to extract the last date of the week and put it in ds column.

For eg: For 201501, last day of week 1 is 4-1-2015
For 201502, last day is 11-1-2015

Any idea how to go about it using python, pandas and datetime library?

Hi, for Python use

strftime() and strptime() Behavior

date, datetime, and time objects all support a strftime(format) method, to create a string representing the time under the control of an explicit format string.

Conversely, the datetime.strptime() class method creates a datetime object from a string representing a date and time and a corresponding format string.

The table below provides a high-level comparison of strftime() versus strptime():
https://docs.python.org/3/library/datetime.html
and their formatter

strftime() and strptime() Format Codes

The following is a list of all the format codes that the 1989 C standard requires, and these work on all platforms with a standard C implementation.

Directive Meaning Example Notes
%a Weekday as locale’s abbreviated name. Sun, Mon, …, Sat (en_US);

So, Mo, …, Sa (de_DE)|(1)|
|%A|Weekday as locale’s full name.|Sunday, Monday, …, Saturday (en_US);

Sonntag, Montag, …, Samstag (de_DE)|(1)|
|%w|Weekday as a decimal number, where 0 is Sunday and 6 is Saturday.|0, 1, …, 6||
|%d|Day of the month as a zero-padded decimal number.|01, 02, …, 31|(9)|
|%b|Month as locale’s abbreviated name.|Jan, Feb, …, Dec (en_US);

Jan, Feb, …, Dez (de_DE)|(1)|
|%B|Month as locale’s full name.|January, February, …, December (en_US);

Januar, Februar, …, Dezember (de_DE)|(1)|
|%m|Month as a zero-padded decimal number.|01, 02, …, 12|(9)|
|%y|Year without century as a zero-padded decimal number.|00, 01, …, 99|(9)|
|%Y|Year with century as a decimal number.|0001, 0002, …, 2013, 2014, …, 9998, 9999|(2)|
|%H|Hour (24-hour clock) as a zero-padded decimal number.|00, 01, …, 23|(9)|
|%I|Hour (12-hour clock) as a zero-padded decimal number.|01, 02, …, 12|(9)|
|%p|Locale’s equivalent of either AM or PM.|AM, PM (en_US);

am, pm (de_DE)|(1), (3)|
|%M|Minute as a zero-padded decimal number.|00, 01, …, 59|(9)|
|%S|Second as a zero-padded decimal number.|00, 01, …, 59|(4), (9)|
|%f|Microsecond as a decimal number, zero-padded on the left.|000000, 000001, …, 999999|(5)|
|%z|UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive).|(empty), +0000, -0400, +1030, +063415, -030712.345216|(6)|
|%Z|Time zone name (empty string if the object is naive).|(empty), UTC, GMT|(6)|
|%j|Day of the year as a zero-padded decimal number.|001, 002, …, 366|(9)|
|%U|Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0.|00, 01, …, 53|(7), (9)|
|%W|Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0.|00, 01, …, 53|(7), (9)|
|%c|Locale’s appropriate date and time representation.|Tue Aug 16 21:30:00 1988 (en_US);

Di 16 Aug 21:30:00 1988 (de_DE)|(1)|
|%x|Locale’s appropriate date representation.|08/16/88 (None);

08/16/1988 (en_US);

16.08.1988 (de_DE)|(1)|
|%X|Locale’s appropriate time representation.|21:30:00 (en_US);

21:30:00 (de_DE)|(1)|
|%%|A literal '%' character.|%|
pandas see here
https://pandas.pydata.org/docs/user_guide/timeseries.html
It has all necessary for work with time