python Dataframe 根据某一列的值来删除多行
在Dataframe中,有的时候想根据某一列值来删除。
方法一:你可以做负isin()索引:
In [57]: df
Out[57]:
a b c
0 1 2 2
1 1 7 0
2 3 7 1
3 3 2 7
4 1 3 1
5 3 4 2
6 0 7 1
7 5 4 3
8 6 1 0
9 3 2 0
In [58]: my_list = [1, 7, 8]
In [59]: df.loc[~df.b.isin(my_list)]
Out[59]:
a b c
0 1 2 2
3 3 2 7
4 1 3 1
5 3 4 2
7 5 4 3
9 3 2 0
方法二:query
In [60]: df.query('@my_list not in b')
Out[60]:
a b c
0 1 2 2
3 3 2 7
4 1 3 1
5 3 4 2
7 5 4 3
9 3 2 0
以前我使用的笨方法是循环删index的方法,在drou_index操作,当数据特别大的时候,特别慢。
换成上面的方法,速度很快!
人生苦短,我用python!!!