检查列表中是否存在元素
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 中
我有 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 中