У меня есть следующий фрейм данных в пандах
Date Time Tank Sales Quantity Delivery
2018-01-01 06:30 1 100 3444 0
2018-01-01 07:00 1 200 3144 0
2018-01-01 05:30 1 100 2900 0
2018-01-01 07:30 1 200 2800 0
2018-01-01 06:30 2 50 3000 0
2018-01-01 07:00 2 100 2950 0
2018-01-01 05:30 2 150 2800 0
2018-01-01 07:30 2 100 2704 0
2018-01-02 06:30 1 100 3444 0
2018-01-02 07:00 1 200 3144 0
2018-01-02 05:30 1 100 2900 50
2018-01-02 07:30 1 200 2800 0
2018-01-02 06:30 2 50 3000 0
2018-01-02 07:00 2 100 2950 0
2018-01-02 05:30 2 150 2800 50
2018-01-02 07:30 2 100 2704 0
Я хочу агрегировать на уровне дня и резервуара, чтобы получить первое и последнее количество (упорядочение времени в порядке возрастания) за этот день и сумму продаж и доставки,Мой желаемый фрейм данных будет
Date Tank Open Close Sales Delivery
2018-01-01 1 2900 2800 600 0
2018-01-01 2 2800 2704 400 0
2018-01-02 1 2900 2800 600 50
2018-01-02 2 2800 2704 500 50
В настоящее время я выполняю следующие действия в пандах
Это для получения первого и последнего количества дней и времени на уровне танка в порядке возрастания.
data_open_close_inv = data.sort_values(['Date','Tank','Time']).groupby(['Date','Tank'])['Quantity'].agg(['first','last']).reset_index()
И затем я собираю это для общей суммы продаж и доставки
data_agg = data.groupby(['Date','Tank'], as_index = False).agg({'Sales':['sum'],'Delivery':['sum']}).reset_index()
И затем снова объединяю оба.
Могу ли я сделать все за один шаг в пандах?