Я пытаюсь удалить определенные строки из таблицы Панд. По сути, это упражнение на дедупликацию:
У меня есть стол
id sub_id1 sub_id2 date
0 1 424755 101 2018-09-21
1 2 424755 101 2018-09-21
2 3 424755 102 2018-09-21
3 4 678321 101 2018-09-21
4 5 678321 102 2018-09-22
5 6 424755 102 2018-09-22
Я хочу удалить строку, если есть другая строка, которая соответствует sub_id1
и date
, но имеет более низкий sub_id2
.
SQL, который я написал бы для этого, был бы
select * from table t
where not exists (select 1 from table
where sub_id1=t.sub_id1
and date=t.date
and sub_id2<t.sub_id2)
Результирующая таблица будет
id sub_id1 sub_id2 date
0 1 424755 101 2018-09-21
1 2 424755 101 2018-09-21
2 4 678321 101 2018-09-21
3 5 678321 102 2018-09-22
4 6 424755 102 2018-09-22
Где id=3
удалено, потому что есть строки, которые имеют точно такой же sub_id1
и столбец даты, что и он, с более низким sub_id2
.
Попытка выяснить это с помощью слияний Панд. Спасибо!