如何在Python中针对列值删除行?

时间:2018-11-11 18:53:24

标签: python pandas dataframe

我要删除有关ID列值的行。

  

df

   ID    B   C   D
0  101   1   2   3
1  103   5   6   7
2  108   9  10  11
3  109   5   3  12
4  118  11  15   2
5  121   2   5   6

这是我要删除的remove_id值的ID列表。

remove_id = [103,108, 121]

我想输出如下:

  

df

   ID    B   C   D
0  101   1   2   3
3  109   5   3  12
4  118  11  15   2

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用remove_id方法检查isin中的ID,用~取反,并将结果Series用于布尔索引。

>>> df[~df['ID'].isin(remove_id)]
>>> 
    ID   B   C   D
0  101   1   2   3
3  109   5   3  12
4  118  11  15   2

详细信息:

>>> df['ID'].isin(remove_id)
>>> 
0    False
1     True
2     True
3    False
4    False
5     True
Name: ID, dtype: bool
>>> ~df['ID'].isin(remove_id)
>>> 
0     True
1    False
2    False
3     True
4     True
5    False
Name: ID, dtype: bool