本文介绍了根据 pandas 中的列表删除行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
node1 node2 weight date
3 6 1 2002
2 7 1 1998
2 7 1 2002
2 8 1 1999
2 15 1 2002
9 15 1 1998
2 16 1 2003
2 18 1 2001
我要删除具有值[3, 7, 18]
的行.这些值可以位于node1
或node2
的任何行中.
I want to delete rows which have the values [3, 7, 18]
.These values can be in any of the rows node1
or node2
.
推荐答案
In [8]: new = df[~df.filter(regex='^node').isin([3,7,18]).any(1)]
In [9]: new
Out[9]:
node1 node2 weight date
3 2 8 1 1999
4 2 15 1 2002
5 9 15 1 1998
6 2 16 1 2003
逐步:
In [164]: df.filter(regex='^node').isin([3,7,18])
Out[164]:
node1 node2
0 True False
1 False True
2 False True
3 False False
4 False False
5 False False
6 False False
7 False True
In [165]: df.filter(regex='^node').isin([3,7,18]).any(1)
Out[165]:
0 True
1 True
2 True
3 False
4 False
5 False
6 False
7 True
dtype: bool
In [166]: ~df.filter(regex='^node').isin([3,7,18]).any(1)
Out[166]:
0 False
1 False
2 False
3 True
4 True
5 True
6 True
7 False
dtype: bool
In [167]: df[~df.filter(regex='^node').isin([3,7,18]).any(1)]
Out[167]:
node1 node2 weight date
3 2 8 1 1999
4 2 15 1 2002
5 9 15 1 1998
6 2 16 1 2003
这篇关于根据 pandas 中的列表删除行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!