首页 > 解决方案 > 如何根据两个字段删除行?

问题描述

我有一个 df 有很多 id 和日期,我需要从这个 df 中删除 id = 4 where date != '2021-01-01' 这个表达式,我认为不会工作

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

我还能怎么写条件?

例如

4 2020-01-01
5 2021-05-01
4 2021-01-01
4 2021-09-01

应该成为

5 2021-05-01
4 2021-01-01

标签: pandas

解决方案


|通过for 按位添加括号和链掩码并与OR交换:==!=

df_2 = df_2[(df_2['id'] != 4) | (df_2['date'] == '2021-01-01')]
print (df_2)
   id        date
1   5  2021-05-01
2   4  2021-01-01

您的解决方案应通过以下方式更改反转掩码~

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

推荐阅读