0

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

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

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

4

3 回答 3

2

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

list1[~list1.isin(list2)]
于 2021-11-03T14:37:23.607 回答
2

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

set(list1).difference(set(list2))
于 2021-11-03T14:38:19.350 回答
1

我使用〜演示isin,这意味着不在。isin构建一个假值的真掩码,然后应用于数据帧

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 中

于 2021-11-03T15:03:17.753 回答