如果该行中的所有值都为假,熊猫会删除该行

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)

所以使用上面的第 2 行包含所有错误 在此处输入图片说明

因此,我不需要使用它,所以我只想将其删除

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

jez*_*ael 5

  • 这假定Boolean值的数据框,而不是string类型。
  • 如另一个答案中所述,用于.replace替换stringBoolean类型。

给定的

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)