Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pandas访问布尔表达式_Python_Python 3.x_Pandas_Python 2.7 - Fatal编程技术网

Python 如何使用pandas访问布尔表达式

Python 如何使用pandas访问布尔表达式,python,python-3.x,pandas,python-2.7,Python,Python 3.x,Pandas,Python 2.7,下面是Excel 说明:我必须删除类别、子类别和子类别2数据,如果筛选列的值大于0,则应删除NAN、0和负值 预期产出: 下面是我试过的脚本 def测试文件: df=pd.read\u文件 掩码=df[‘过滤器’]!=0.2滴漏纳 如果遮罩: df1=df[遮罩] df1[“类别”]= df1[“子类别”]= df1['子类别2']= 打印df1 TESTtest.xlsx 我在错误下面, ValueError:数据帧的真值不明确。使用a.empty、a.bool、a.item、a.any或a.

下面是Excel

说明:我必须删除类别、子类别和子类别2数据,如果筛选列的值大于0,则应删除NAN、0和负值

预期产出:

下面是我试过的脚本

def测试文件: df=pd.read\u文件 掩码=df[‘过滤器’]!=0.2滴漏纳 如果遮罩: df1=df[遮罩] df1[“类别”]= df1[“子类别”]= df1['子类别2']= 打印df1 TESTtest.xlsx 我在错误下面, ValueError:数据帧的真值不明确。使用a.empty、a.bool、a.item、a.any或a.all。请帮助我。

使用:

这里有一个例子

是的,我试过使用mask.any操作符,但在打印df时,它在类别中给出空列。
where=df['Filter'].eq(0)| ( df['Filter'].isnull() | df['Filter'].eq('') )
cols=['CATEGORY','SUB_CATEGORY','SUB_CATEGORY_2']
df[cols]=df[cols].where(where)
df=pd.DataFrame({'Modules':'M1 M2 M3 M4 M5 M6 M7 8'.split(),'Filter':[1 ,3 ,6, np.nan, 0 ,np.nan ,2, 0],
                 'CATEGORY':[np.nan,np.nan,np.nan,'data','data','data',np.nan,'data'],
                'SUB_CATEGORY':[np.nan,np.nan,np.nan,'data','data','data',np.nan,'data'],
                'SUB_CATEGORY_2':[np.nan,np.nan,np.nan,'data','data','data',np.nan,'data']})

  Modules  Filter CATEGORY SUB_CATEGORY SUB_CATEGORY_2
0      M1     1.0      NaN          NaN            NaN
1      M2     3.0      NaN          NaN            NaN
2      M3     6.0      NaN          NaN            NaN
3      M4     NaN     data         data           data
4      M5     0.0     data         data           data
5      M6     NaN     data         data           data
6      M7     2.0      NaN          NaN            NaN
7       8     0.0     data         data           data
where=df['Filter'].eq(0)| ( df['Filter'].isnull() | df['Filter'].eq('') )
cols=['CATEGORY','SUB_CATEGORY','SUB_CATEGORY_2']
df[cols]=df[cols].where(where,'')
print(df)

  Modules  Filter CATEGORY SUB_CATEGORY SUB_CATEGORY_2
0    M1      1.0                                      
1    M2      3.0                                      
2    M3      6.0                                      
3    M4      NaN    data       data          data     
4    M5      0.0    data       data          data     
5    M6      NaN    data       data          data     
6    M7      2.0                                      
7     8      0.0    data       data          data