pandas - 如何根据两个字段删除行?
问题描述
我有一个 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
解决方案
|
通过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'))]