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!!!
本文介绍了两种快速删除Python pandas DataFrame中特定列值对应行的方法:使用`~df.b.isin(my_list)`和`df.query('@my_list not in b')`。这两种方法在处理大量数据时比循环删除index的方法效率更高,适合大数据场景。通过实例展示了如何根据列表`my_list`过滤掉DataFrame中'abc'列值在列表内的行。
1587

被折叠的 条评论
为什么被折叠?



