Jar*_*ins 1 python boolean pandas
我想整理数据集中的一些行
output = {
'id1': ['False', 'False', 'False', 'False'],
'id2': ['True', 'False', 'False', 'False'],
'id3': ['True', 'False', 'True', 'False'],
'id4': ['True', 'False', 'True', 'True'],
}
Run Code Online (Sandbox Code Playgroud)
因此,我不需要使用它,所以我只想将其删除
newoutput = {
'id1': ['False', 'False', 'False'],
'id2': ['True', 'False', 'False'],
'id3': ['True', 'True', 'False'],
'id4': ['True', 'True', 'True'],
}
Run Code Online (Sandbox Code Playgroud)
我已经检查了其中包含 false 的行
output.drop(output[output != False].index, inplace=True)
Run Code Online (Sandbox Code Playgroud)
但这只是查看行中的任何值都是 False 而不是 All
Boolean值的数据框,而不是string类型。.replace替换string为Boolean类型。df = pd.DataFrame({'id1': [True, False, False, False], 'id2': [True, False, False, False], 'id3': [True, False, True, False], 'id4': [True, False, True, True]})
id1 id2 id3 id4
0 True True True True
1 False False False False
2 False False True True
3 False False False True
Run Code Online (Sandbox Code Playgroud)
用于DataFrame.any将至少一个True与布尔索引匹配,这将删除所有False.
df = df[df.any(axis=1)]
id1 id2 id3 id4
0 True True True True
2 False False True True
3 False False False True
Run Code Online (Sandbox Code Playgroud)
或者,要删除全部为 的行True,请使用.all()并否定~。
df[~df.all(axis=1)]
id1 id2 id3 id4
1 False False False False
2 False False True True
3 False False False True
Run Code Online (Sandbox Code Playgroud)