从df中删除包含2列相同组合的行

时间:2019-03-14 17:37:05

标签: python-3.x pandas dataframe data-analysis

我有一个下面的df,其中包含ID的组合,如何删除相同的组合?对于前。前4行是相同的组合,但顺序不同。当它们以不同顺序但保留一个唯一组合时,是否可以删除所有重复组合?

Name  ID1  Time  ID2  Time
Chi 232 24:18.4 111 19:17.7
Chi 111 19:17.7 232 24:18.4
Ari 444 02:33.0 555 57:34.2
Ari 555 57:34.2 444 02:33.0
Ca  321 27:11.7 787 22:14.5
Ca  443 42:49.4 667 47:47.4
Ca  667 47:47.4 443 42:49.4

1 个答案:

答案 0 :(得分:1)

您可以对ID列进行排序以使用duplicated创建掩码,然后为DataFrame编制索引。

u = df.filter(like='ID').values
m = pd.DataFrame(np.sort(u, axis=1)).duplicated()

df[~m]

  Name  ID1    Time1   ID2    Time2
0  Chi  232  24:18.4   111  19:17.7
2  Ari  444  02:33.0   555  57:34.2
4   Ca  321  27:11.7   787  22:14.5
5   Ca  443  42:49.4   667  47:47.4