【问题标题】:Filter a dataframe using two conditions in python在python中使用两个条件过滤数据框
【发布时间】:2021-12-13 17:54:04
【问题描述】:

我想使用两种不同的条件过滤数据框。

但我想省略不满足条件的行,只想保留在 A 列中至少出现两次的值

df1 = df[(df['A-B occurrence'] >= 3) & (df['A occurrence'] >= 2)]

上面是我正在使用的代码,这是我得到的输出:

因此,在 A 列中,17 仅在一行中满足条件,因此我想将 17 全部省略,因为它不满足条件,这意味着我只想保留 A 2 列中存在的重复值或2次以上

【问题讨论】:

  • “所以在 A 列中,17 只满足一行中的条件”不是 True。 'A occurrence' >= 2)
  • 我不完全明白你的意思。你想要一个“或”语句而不是一个“和”吗?
  • 除非我记错了,否则df 中的第 17 行已被过滤掉。
  • 我认为 OP 只想保留重复的 As(见我的回答)
  • 我不想过滤掉第 17 行而是第 17 行

标签: python pandas numpy filter


【解决方案1】:

您只想保留 A 重复的行。

你可以使用:

df2 = df1[df1['A'].duplicated(keep=False)]

输出:这应该删除索引为 14 (A=17) 和 19 (A=19) 的行

注意。如果需要,您可以在其他列上应用相同的策略

【讨论】:

  • 谢谢,它有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 2021-09-18
相关资源
最近更新 更多