我有一个导入到Pandas中的大 Dataframe ,我想通过一个过滤器把它分解掉。下面是我的基本示例代码:
import pandas as pd
import numpy as np
from pandas import Series, DataFrame
df = DataFrame({'A':[12345,0,3005,0,0,16455,16454,10694,3005],'B':[0,0,0,1,2,4,3,5,6]})
df2= df[df["A"].map(lambda x: x > 0) & (df["B"] > 0)]
基本上,这显示了底部4个结果,这是半正确的。但我需要显示除这些结果之外的所有结果。因此,本质上,我正在寻找一种使用此筛选器的方法,但如果可能的话,使用“非”版本。因此,如果列A大于0且列B大于0,则我们希望从 Dataframe 中取消这些值。谢谢
4条答案
按热度按时间zzoitvuj1#
不需要在系列“A”上调用Map函数。
应用De Morgan's Law:
“非(A和B)”与“(非A)或(非B)"相同
7cjasjjr2#
不需要
map
实现,您可以像这样反转参数...或者使用不带
ix
的boolean indexing
:yhuiod9q3#
试试看
字符串
f8rj6qna4#
您可以用途:把所有东西都放在括号里,外面用~(波浪号)代替没有东西。
答: