首页 > 解决方案 > Pandas:有没有办法比较两个系列并找到一个系列中最近的元素,而不是另一个系列?

问题描述

我想知道是否有办法知道 B 系列中存在但 A 系列中没有的数字。

Series A:
[2,3,4,6,7]

Series B:
[4,5,6,7,8,9]

Output Expected:
[5,8,9]

标签: pythonpandas

解决方案


您可以使用pd.Series.isin布尔索引:

A = pd.Series([2,3,4,6,7])
B = pd.Series([4,5,6,7,8,9])

res = B[~B.isin(A)].values

array([5, 8, 9], dtype=int64)

或 NumPy 变体:

res = B.values[~np.isin(B.values, A.values)]

您还可以使用set.difference

res = list(set(B) - set(A))

[8, 9, 5]

但是请注意,使用 Pandas / NumPy 的内置插件通常不是最佳选择。


推荐阅读