【发布时间】:2019-04-05 05:51:37
【问题描述】:
我正在尝试从 Pandas 表中删除某些行。它本质上是一个重复数据删除练习:
我有一张桌子
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 较低。
尝试使用 Pandas 合并来解决这个问题。谢谢!
【问题讨论】:
标签: python sql pandas join merge