【问题标题】:Filter rows based on two columns together [duplicate]基于两列一起过滤行[重复]
【发布时间】:2021-01-06 18:33:01
【问题描述】:

我正在尝试根据两行值过滤掉行。我看到的大多数问题的解决方案都使用以下方法:

df.loc[(df['A'] != 'yes') & (df['B'] != 'no')]

这会过滤 A 和 B 不同于一个值的行,我要做的是过滤列具有我要过滤的值的行,例如:

Player | action | result
1          A        B
2          B        A
3          C        A
4          A        B
5          A        C

在此示例中,我想删除具有操作 A 和结果 B 的行。使用上面的示例,它将删除等于A 的操作和结果等于B 的行。我想删除结果为B 的操作A

预期输出:

  Player | action | result
    2          B        A
    3          C        A
    5          A        C

可能我在这里造成了很多混乱,这很简单。无论如何,任何帮助将不胜感激!

问候

【问题讨论】:

  • df[(df["action"] != "A" & df["result"] != "B")]
  • @yuRa 那个答案是错误的

标签: python pandas


【解决方案1】:

请您尝试关注一下。

import pandas as pd
df2[~((df2["action"]=='A') & (df2["result"]=='B'))]

数据框的输出如下。

  Player action result
1   2    B    A
2   3    C    A
4   5    A    C

【讨论】:

    【解决方案2】:

    我想这就是你想要的

    pd.concat([df[(df['action'] == 'A') & (df['result'] != 'B')],df[(df['action'] != 'A')]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2023-01-02
      • 2021-02-28
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多