Выберите данные (строки) только за последний день каждого месяца - PullRequest
1 голос
/ 21 сентября 2019

Я хочу выбрать только те строки, которые являются последним днем ​​каждого месяца.Например: вывод следующего фрейма данных будет следующим:

date    Sales
0   2015-04-01  2416000
1   2015-04-02  2414000
2   2015-04-03  2416000
3   2015-04-04  2422000
4   2015-04-05  2434000
......

17  2015-05-18  2446000
18  2015-05-19  2454000
19  2015-05-20  2456000
20  2015-05-21  2453000
21  2015-05-22  2461000

Вывод:

 date        Sales
2015-04-05  2434000
2015-05-22  2461000

Я пробовал это:

df.iloc[df.reset_index().groupby(df.date.to_period('M'))['index'].idxmax()]

Но это даетмне следующая ошибка.

AttributeError: 'RangeIndex' object has no attribute 'to_period'

Любая помощь будет высоко оценена.Спасибо

1 Ответ

2 голосов
/ 21 сентября 2019

это выглядит transform с boolean_indexing:

df[df['date'].eq(df.groupby([df['date'].dt.year,
           df['date'].dt.month])['date'].transform('max'))]

         date      Sales
4  2015-04-05  2434000.0
21 2015-05-22  2461000.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...