python - 根据数据框中的条件过滤数据

标签 python pandas numpy

我有两个数据框: df1:

  | from id | from group | to id | to group   |
  |    1    |      A     |   3   |      B     |
  |    4    |      B     |   4   |      X     | 
  |    5    |      F     |   5   |      J     |
  |    2    |      B     |   3   |      A     |

df2:

   | From | To |
   |   A  |  B |
   |   F  |  J |

我想过滤掉 df2 中的值(如果存在于 df1 的“来自组”和“至组”列中)

预期输出:

     | from id | from group | to id | to group   |
     |    4    |      B     |   4   |      X     | 
     |    2    |      B     |   3   |      A     |

我正在寻找灵活的解决方案。如果 df2 列中的值发生更改,该解决方案也不会更改。

最佳答案

您可以将 .mergeindicator=True 一起使用,然后过滤 df1:

x = df1[
    df1.merge(
        df2,
        left_on=["from group", "to group"],
        right_on=["From", "To"],
        indicator=True,
        how="left",
    )._merge.eq("left_only")
]
print(x)

打印:

   from id from group  to id to group
1        4          B      4        X
3        2          B      3        A

关于python - 根据数据框中的条件过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69166179/

相关文章:

python - 使用 matplotlib 的非重叠散点图标签

python - 尝试导入 Pandas 时在 Python 中找不到模块错误

python - "pip3 install numpy"在酿造的 Python 3.5 上失败

python - 使用 python 访问 Google Drive/Dropbox 中的文件

python - Python 中的时间复杂度 - 大 O 表示法

python - 对音频信号进行卷积

python - 哪个 Pandas 数据框更好 : super long dataframe VS badly structured one with lists

python - 类型错误 : string indices must be integer

numpy - scipy.optimize : faster root finding over 2D grid

python - matplotlib 中累积分布函数的对数图