我有一个值列表(预先未知,在Python列表中),我的Panda DataFrame中的列不能对所有行都具有。
Web上的所有食谱(如本教程)都显示了如何仅排除一个值,但是我有多个要排除的值。我该怎么做?
请注意,我无法对要排除在代码中的值进行硬编码。
谢谢!
您可以对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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句