python - 根据数据框中的条件过滤数据
问题描述
我有两个数据框: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 列中的值发生更改,则不会更改的解决方案。
解决方案
您可以使用.merge
with indicator=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
推荐阅读
- php - 在联系表 7 中集成 SOAP
- ios - iOS 13 窗口背景颜色
- ruby - 当使用 `execute` 而不是 `invoke` 运行任务时,为什么 `args` 不是 Rake::TaskArguments 的实例?
- flutter - Flutter in_app_purchase 0.2.1 purchaseUpdatedStream.listen 在 Android 上不起作用
- angular-material - 当侧面导航在角度材料中打开时如何添加侧面导航切换图标
- .net - 通过 Docker 运行 .Net Core 应用程序时找不到 .XML 文件
- css - 如何使两个或更多行长表适合内联引导程序 4?
- msbuild - Cakebuild 脚本使用 vs 2017 并且构建失败
- javascript - 如何在 postgresql 中更改格式日期
- graphql - Graphql `Parameter \"obj\" to Document() 必须是一个对象,得到`