Проблема
У меня есть mysql база данных, которая сохраняет временные ряды (для каждого клиента и на дату остаток на счете клиента). Каждая неделя может иметь несколько значений. Столбец даты можно считать допустимым и полным объектом даты и времени. Может быть несколько записей на клиента и неделю, но я хочу сохранить только одно значение в неделю. Я запрашиваю базу данных и строю из нее соответствующий pandas фрейм данных.
Ограничения:
- Чаще всего во вторник каждой недели будут значения
- Иногда вторник может не иметь значения, принять следующее возможное значение на этой неделе, тогда
+-------------+------------+---------+
| customer_id | date | balance |
+-------------+------------+---------+
| 01 | 01.01.2020 | 50$ |
| 02 | 01.01.2020 | 40$ |
| 01 | 02.01.2020 | 40$ |
| 01 | 08.01.2020 | 60$ |
+-------------+------------+---------+
Решение
Решение содержит:
- одно значение для каждого клиента каждую неделю (нет повторяющихся значений равных неделя / день)
- значение - самое раннее возможное значение
Из приведенного примера это:
+-------------+------------+---------+
| customer_id | date | balance |
+-------------+------------+---------+
| 01 | 01.01.2020 | 50$ |
| 02 | 01.01.2020 | 40$ |
| 01 | 08.01.2020 | 60$ |
+-------------+------------+---------+
Как это можно решить / Вопрос
Я мог бы перебрать кадр данных и для каждого идентификатора и недели выбрать первое значение в течение недели и сохранить это к новому дф / удалить все остальные записи. Это кажется довольно неэффективным. Есть ли решение, которое более приспособлено для pandas или, возможно, я бы даже улучшил запрос mysql, чтобы отфильтровать данные по мере необходимости?