You can create time series with the last working day of each month by going to freq='BM' .
For example, to create a series of the last working days of 2014:
>>> pd.date_range('1/1/2014', periods=12, freq='BM') [2014-01-31 00:00:00, ..., 2014-12-31 00:00:00] Length: 12, Freq: BM, Timezone: None
You can then use these timers to subset / reindex your DataFrame.
source share