【发布时间】:2020-12-17 14:37:52
【问题描述】:
我有一个包含数百行和 10 列的 Pandas DataFrame。每行代表一个唯一的 ID,每列代表 k 个最近邻索引。也就是说,第一列是 ID 的最近邻居的索引,第二列是第二最近的邻居,以此类推,一直到第 10 个最近的邻居。
但是,第一列有一些重复,因为有几个 ID 共享一个共同的最近邻居。但是,我想找到每个 ID 的最近邻索引,但不能重复。因此,例如,如果前两个 ID 共享最近的邻居,那么我想使用第二列来查找第二个 ID 的非重复最近邻居。例如,如果我的 DataFrame 如下所示:
NN1 NN2 NN3 ... NN10
1 1 3 8
2 1 5 9
3 1 5 2
4 3 8 1
那么结果就是:
NN_no_dup
1 1
2 5
3 2
4 3
在我的示例中,据我所知,在使用第 10 个最近邻后,似乎没有出现重复项(如果有,我可以简单地增加最近邻的数量)使用)。
【问题讨论】:
-
如果假设下一个 ID=5 会发生什么,你的 NN 的顺序是 10,3,11,...你保留哪一个,知道在第 ID=3 行,在NN_no_dup 你现在有 10 个,而在原点,10 不在第一列 NN1
-
我会使用 11,因为它尚未在 NN_no_dup 中使用。
标签: python pandas duplicates