You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于两个字段的条件删除Pandas DataFrame中的指定行

错误原因

  1. 运算符优先级问题:pandas中&的优先级高于比较运算符!=,你原有代码没有给每个独立条件加括号,会先执行4 & df_2['date'] != '2021-01-01',逻辑完全不符合预期。
  2. 条件逻辑写反:你原有代码的逻辑是筛选「id不等于4 且 date不等于'2021-01-01'」的行,和你要实现的「删除id等于4且date不等于'2021-01-01'的行」的需求不匹配。

正确写法

你可以任选两种写法之一,两种写法效果完全一致:

方式1:正向写要保留的行逻辑

保留所有「id不等于4」或者「id等于4且date等于'2021-01-01'」的行:

df_2 = df_2[(df_2['id'] != 4) | (df_2['date'] == '2021-01-01')]

方式2:反向写要排除的行逻辑

直接排除「id等于4且date不等于'2021-01-01'」的行,用~对删除条件取反即可:

df_2 = df_2[~((df_2['id'] == 4) & (df_2['date'] != '2021-01-01'))]

两种写法运行后,和你给出的示例期望结果完全匹配。


内容的提问来源于stack exchange,提问作者user458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:45:02