【问题标题】:Checking if an element exist in list检查列表中是否存在元素
【发布时间】:2021-12-17 22:37:24
【问题描述】:

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

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

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

【问题讨论】:

  • 请提供minimal reproducible example 并提供少量样本数据以重现该问题。给出预期输出和实际输出
  • A pd.Series 不是列表
  • 下一次,请提供一些示例数据,如@Golden Lion 所做的:list1 = pd.Series([1, 2, 3, 4, 5]); list2 = pd.Series([4, 5, 6, 7, 8]) 以及预期的输出1 2 3

标签: python pandas list-comparison


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    list1[~list1.isin(list2)]
    

    【讨论】:

      【解决方案3】:

      我使用 ~ 来演示 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 中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 2011-08-02
        • 2018-01-10
        • 2015-10-06
        • 1970-01-01
        相关资源
        最近更新 更多