检查列表中是否存在元素

Checking if an element exist in list

我有 2 个列表(pandas.core.series.Series),我想列出其他系列中不存在的元素。所以我正在使用 'not in' 运算符,但它不起作用,代码会打印整个列表。

for i in list1:
  if i not in list2:
    print(i)

此代码打印整个 list1,而不是打印 list2 中不存在的元素。我知道这应该是一项简单的任务,但我卡住了,有人可以帮助我吗?

您可以使用 Pandas 自己的 Series.isin():

list1[~list1.isin(list2)]

您可以只使用集合并计算集合差异。

set(list1).difference(set(list2))

我使用 ~ 来演示 isin,这意味着不在。isin 构建一个 true 或 false 值的掩码,然后应用于数据帧

list1 = pd.Series([1, 2, 3, 4, 5])
list2 = pd.Series([4, 5, 6, 7, 8])

print(list1[~list1.isin(list2)])

产出

1 2个 3

list1 的值不在 list2 中