首页 > 解决方案 > 使用 AND 进行布尔过滤 - Pandas

问题描述

df使用布尔运算符过滤以下内容时,我似乎无法获得正确的输出。我想要df删除AND所在ID的行。似乎正在删除不等于的字符串。<= 2String == A,B, or CA,B, or C

df = pd.DataFrame({
    'String' : ['A','F','B','C','D','A','X','C','B','D','A','Y','A','C','A','D','C','B'],                  
    'ID' : [4,2,3,4,5,6,4,2,3,4,5,6,4,2,3,4,5,6], 
        })

df = df[~(df['ID'] <= 2) & (df['String'].isin(['A','B','C']))]

预期输出:

   String  ID
0       A   4
1       F   2
2       B   3
3       C   4
4       D   5
5       A   6
6       X   4
#7       C   2 Remove
8       B   3
9       D   4
10      A   5
11      Y   6
12      A   4
#13      C   2 Remove
14      A   3
15      D   4
16      C   5
17      B   6

标签: pythonpandasboolean

解决方案


推荐阅读