добрый день, коллеги, подскажите логику решения задачи:
pandas DF может содержать строки, которые являются дублями по по 3-5 ОСНОВНЫМ признакам (ФИО+ДР+дата поступления в базу)
КОСВЕННЫЕ признаки могут отличаться или быть одинаковыми
мне нужно удалить дубли по правилу:
1) если КОСВЕННЫЕ признаки заполнены в одинаковом объеме - те, одинаковое кол-во NaN в строке - оставить строку с наиболее позднем временем поступления в базу
2) если КОСВЕННЫЕ признаки заполнены не одинаково то:
а) если у одной из строк заполнен признак "результат" оставить строку с заполненным признаком и удалить ту где "результат" == NaN;
б) если ни у одной из строк НЕ заполнен признак "результат" оставить строку с наименьшим количеством NaN в признаках;
я пока вижу решение только так:
1) добавить признак "кол-во NaN в строке"
2) разбивать таблицу на:
* ту что с "результат" == NaN
* "результат" != NaN
3) удалить дубликаты (оставив последний по времени поступления) в таблице с "результат" != NaN
4) найти в таблице "результат" == NaN людей у которых ОСНОВНЫЕ признаки совпали с списокм уникальных из таблицы с "результат" != NaN
5) для оставшихся в "результат" == NaN сортироваться по наименьшему значению признака "кол-во NaN в строке" - потом удалить дубликаты по ОСНОВНЫМ признакам.
короче, очень сложно((
возможно есть какое-то простое решение (метод который я не обнаружил) - буду рад помощи