Я использую мульти-индексный столбец данных с пользовательскими датами (определенные праздники, дни недели ...).
DatetimeIndex(['1989-01-31', '1989-02-01', '1989-02-02', '1989-02-03',
'1989-02-06', '1989-02-07', '1989-02-08', '1989-02-09',
'1989-02-10', '1989-02-13',
...
'2019-02-25', '2019-02-26', '2019-02-27', '2019-02-28',
'2019-03-01', '2019-03-04', '2019-03-05', '2019-03-06',
'2019-03-07', '2019-03-08'],
dtype='datetime64[ns]', length=7585, freq=None)
Мне нужно нарезать его на первый или последний день месяца из индекса.Из-за праздников ... первый / последний день месяца индекса не будет совпадать с freq = 'BM'.Не нужно упоминать, что я не могу использовать resample (), ...
Вот пример:
import pandas as pd
import numpy as np
idx = pd.DatetimeIndex(['1989-01-31', '1989-02-01', '1989-02-02', '1989-02-03','1989-02-06', '1989-02-07', '1989-02-08', '1989-02-09','1989-02-10', '1989-02-13', '2019-02-25', '2019-02-26', '2019-02-27', '2019-02-28','2019-03-01', '2019-03-04', '2019-03-05', '2019-03-06','2019-03-07', '2019-03-08'], dtype='datetime64[ns]')
numbers = [0, 1, 2]
colors = [u'green', u'purple']
col = pd.MultiIndex.from_product([numbers, colors],names=['number', 'color'])
df = pd.DataFrame(np.random.rand(len(idx),len(col)),index =idx,columns=col)
number 0 1 2
color green purple green purple green purple
2018-06-05 0.64943 0.64943 0.64943 0.64943 0.64943 0.64943
etc...
Ожидаемый результат:
2018-06-29 0.64943 0.64943 0.64943 0.64943 0.64943 0.64943
Как можноя делаю это, пожалуйста?
спасибо