熊猫:有没有办法比较两个系列并找到一个系列中最近的元素,而不是另一个系列中的元素?

时间:2018-10-06 00:31:10

标签: python pandas

我想找出是否有一种方法可以知道B系列中的数字,而A系列中没有。

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

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

Output Expected:
[5,8,9]

1 个答案:

答案 0 :(得分:1)

您可以将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一起使用通常不是最佳选择。