pandas对布尔类型应用过滤器
这是我数据表中各列的数据类型;
count int64
word object
cat1 bool
cat2 object
cat3 bool
dtype: object
我该如何对'cat1'和'cat2'这两列进行布尔值的过滤呢?
大概是这样的...
data[(data['cat1'].bool() == FALSE) & (data['cat3'].bool() == FALSE)]
2 个回答
0
你可以简单地这样做,
data[(data['cat1']==False) & (data['cat3']==False)]
举个例子:
test = pd.DataFrame({'word':'','cat1':bool(),'cat2':'','cat3':bool()},index=[])
test.loc[0]=['test1',True,'try',False]
test.loc[1]=['test1',False,'try',False]
test[(test['cat1']==False) & (test['cat3']==False)]
1
只需要这样做:
data[(data['cat1'] == FALSE) & (data['cat2'] == FALSE)]
cat2
是一个 object
类型的数据,所以它可能是字符串。我觉得你想要的是:
data[(data['cat1'] == FALSE) & (data['cat3'] == FALSE)]
如果它确实是字符串值的话,你可以这样做:
data[(data['cat1'] == FALSE) & (data['cat2'] == 'FALSE')]
或者:
data[(data['cat1'] == FALSE) & (data['cat2'].str.contains('FALSE'))]