首页 > 解决方案 > 在两个数组中查找重复值,Python

问题描述

我有两个数组(A 和 B),每个数组有大约 50 000 个值。每个值都代表一个 ID。我想创建一个包含三列的熊猫数据框,col1:来自数组 A 的值,col2:来自数组 B 的值,col3:带有标签“唯一”或“重复”的字符串。在每个数组中,ID:s 都是唯一的。

数组的长度不同。所以我不能做这样的事情来开始。

a = np.array([1, 2, 3, 4, 5])
a = np.array([5, 6, 7, 8, 9, 10])
pd.DataFrame({'a':a, 'a':b})

然后我想创建一个不同的熊猫数据框,也有三列。一个用于 ID,另一个用于 ID 来自哪个数组(a 或 b)。然后按 ID 分组并计算出现次数。如果 >=2 那么我们有一个副本。

但我不知道如何在同一列中一个接一个地获取 numpy 数组(如 R 中的 rbind),同时根据值来自哪个数组创建另一列。

很可能有比我上面建议的更好的解决方案。有任何想法吗?

标签: pythonpandasnumpy

解决方案


要在两个数组中查找重复元素,请使用numpy.intersect1d

In [458]: a = np.array([1, 2, 3, 4, 5])

In [459]: b = np.array([5, 6, 7, 8, 9, 10])

In [462]: np.intersect1d(a,b)
Out[462]: array([5])

推荐阅读