用于删除python数据帧中包含false的列的布尔掩码

用于删除python数据帧中包含false的列的布尔掩码,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个值DataFramevdf: 0 1 2 0 1 2 3 1 4 5 6 0 1 2 0 True False True 1 True True True 和一个布尔数据帧bdf: 0 1 2 0 1 2 3 1 4 5 6 0 1 2 0 True False True 1 True True True 或代码(刚刚编辑): 我想使用bdf作为布尔

我有一个值DataFrame
vdf

   0  1  2
0  1  2  3
1  4  5  6
      0      1     2
0  True  False  True
1  True   True  True
和一个布尔数据帧
bdf

   0  1  2
0  1  2  3
1  4  5  6
      0      1     2
0  True  False  True
1  True   True  True
或代码(刚刚编辑):


我想使用
bdf
作为布尔掩蔽来删除
vdf
中的列,
bdf
中对应的列包含
False
。在本例中,应删除第二列和第三列。实现这一点的最佳方法是什么?

使用
pd.DataFrame中的布尔索引。所有

print(vdf.loc[:, bdf.all()])
输出:

   0  2
0  1  3
1  4  6
您可以尝试以下方法:

import pandas as pd
vdf = pd.DataFrame([[1,2,3],[4,5,6]])
bdf = pd.DataFrame([[True,False,True],[True,True,False]])
print(vdf.where(bdf).dropna(axis=1))
随着输出的增加:

   0
0  1
1  4

print(vdf)
print(bdf)
的输出是什么?第三列不也应该删除吗?如果这是一个问题,您应该添加标记谢谢大家的快速帮助。是的,我在我原来的帖子中犯了一个错误,第三栏也应该删除。我还添加了vdf和bdf的代码。