【发布时间】:2020-02-14 10:49:13
【问题描述】:
如果一个值出现在之前的一行中,但在前两列中的任何一个中,我需要从 df 中删除行。
我的 df 看起来像这样:
id_a id_b value
0 NWS HRD 21.06
1 HPE ZRF 170.13
2 BAN NWS 244.44
3 HBI BCT 304.37
4 JFK AQE 314.12
5 AQE KEY 324.82
6 NWS KLM 314.12
例如,NWS 在第 0、2 和 6 行,但并不总是在 id_a 列中,因为它也在 id_b 列中。 AQE 在第 4 行和第 5 行,每次都在不同的列中。如果之前出现id,无论它是在id_a 还是id_b 列中,如何删除一行?
毕竟,我希望有一个新的 df,其中每个 id 的第一次出现,在第一次观察的列中。
理想的df应该是这样的:
id_a id_b value
0 NWS HRD 21.06
1 HPE ZRF 170.13
3 HBI BCT 304.37
4 JFK AQE 314.12
我知道我可以先通过id_a 和第二个id_b 对drop_duplicates() 进行子集化,但是如果相同的 id 在 2 个不同的列中,这不会放弃。
【问题讨论】:
-
如果一个ID的第二次出现与另一个ID的第一次出现在同一行,你会怎么做?
-
到底是什么问题? Stack Overflow 不是免费的代码编写服务。请参阅:How to Ask、tour、help center、meta.stackoverflow.com/questions/261592/…。
标签: python pandas duplicates