Я ищу pandas, эквивалентный SQL функции окна Redshift LAST_VALUE ().
У меня есть pandas кадр данных отчетов с серийными номерами, которые добавляются ежедневно.
import pandas as pd
data = {'serial_num': [123456, 678901, 123456, 678901],
'status': ['Good', 'Good', 'BAD', 'BAD'],
'last_check':['2020-03-02','2020-03-02','2020-03-01','2020-03-01']}
new_br = pd.DataFrame.from_dict(data)
new_br
serial_num status last_check
123456 Good 2020-03-02
678901 Good 2020-03-02
123456 BAD 2020-03-01
678901 BAD 2020-03-01
Я хочу получить максимальное значение last_check
, сгруппированное по serial_num, и сохранить все столбцы (в моем фактическом наборе данных есть больше столбцов).
Пока мой код:
new_br.set_index('last_check').groupby('serial_num').max()
serial_num status
123456 Good
678901 Good
Однако это удаляет столбец last_check
. Как сохранить столбец даты, аналогично функции LAST_VALUE () в SQL Redshift?
Мой ожидаемый результат:
serial_num status last_check
123456 Good 2020-03-02
678901 Good 2020-03-02