【问题标题】:Filter out rows of panda-df by comparing to list [duplicate]通过与列表比较过滤掉 panda-df 的行 [重复]
【发布时间】:2018-11-15 01:35:50
【问题描述】:

以下问题经常出现。假设我有一个数据框,其中一列可以采用离散值:

df = pd.DataFrame({'col1': [1, 2,3,4,5,6,7], 'col2': ["A", "B", "A", "C", "B", "A", "D"]})

在这种情况下,col2 可以取值 A、B 或 C。我只想找到 col2 等于 A 或 B 的行。我认为以下语法可以使用,

df["col2"] not in ["A", "B"]

但是,这给了我错误ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

有没有一种巧妙的方法可以过滤掉这些行?

【问题讨论】:

  • 你想要df[~df['col2'].isin(['A','B'])]

标签: python pandas


【解决方案1】:

你可以使用isin方法。

df = df[~df.col2.isin(['A', 'B'])]

输出

   col1 col2
3     4    C
6     7    D

【讨论】:

  • 这是个骗子,没必要回答 IMO,也没有投反对票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2019-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
相关资源
最近更新 更多