用于删除python数据帧中包含false的列的布尔掩码
我有一个值DataFrame用于删除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作为布尔
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的代码。