我有一个值列表(事先不知道,在Python列表中),我的Panda DataFrame中的列不能包含所有行.
Web上的所有配方(如this one)都显示了如何只使用一个要排除的值,但我有多个要排除的值.我该怎么做?
请注意,我无法在我的代码中硬编码要排除的值.
谢谢!
解决方法:
你可以做负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
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] 举报,一经查实,本站将立刻删除。