Фильтрация фреймов данных по datetimeindex- последний рабочий день каждого месяца

У меня есть df, с которым можно представить ниже столбец даты и 4 переменных столбца.

Date          A B C D
2015-10-31    6 7 3 7
2015-11-01    1 3 9 4
2015-11-02    4 5 8 1
2015-11-03    4 2 5 9

Я пытаюсь отфильтровать df в последний рабочий день каждого месяца, добавив дополнительный столбец с именем EndofMonth и взяв последнюю n-ую строку каждого месяца:

df['EndOfMonth'] = pd.to_datetime(df['DATE'], format="%Y%m") + MonthEnd(1)
df.apply(lambda x: x.sort('dt', ascending=True).tail(1))

Это дает мне ошибку. Есть идеи как лучше это решить?

1 ответ

IIUC

df.resample('M', on='Date').apply(pd.DataFrame.tail, n=2)

введите описание изображения здесь


ответ на комментарий

d1 = df.resample('M').apply(pd.DataFrame.tail, n=2)
d1.index = d1.index.droplevel(0)
d1

введите описание изображения здесь

Другие вопросы по тегам