Python 基于其他列从数据帧中剪切拖带

Python 基于其他列从数据帧中剪切拖带,python,pandas,dataframe,Python,Pandas,Dataframe,示例数据: dd = pd.DataFrame({ 'file': ['file1','file2','file3','file4','file5','file6','file7','file8','file9'], 'prop1': [True,False,False,False,False,False,False,False,False], 'prop2': [False,False,False,False,False,False,False,True,False],

示例数据:

dd = pd.DataFrame({
    'file': ['file1','file2','file3','file4','file5','file6','file7','file8','file9'],
    'prop1': [True,False,False,False,False,False,False,False,False],
    'prop2': [False,False,False,False,False,False,False,True,False],
    'prop3': [False,True,False,True,False,True,False,False,True]
})
我需要将所有具有错误属性值的行(在示例文件3、5、7中)剪切到另一个新的数据帧(剪切后,它们不应位于“dd”数据帧中)

摩根定律的简单应用

获取不包含False的行

dd[~dd[['prop1','prop2','prop3']].any(axis=1)]
你需要

或使用:

输出:

    file  prop1  prop2  prop3
0  file1   True  False  False
1  file2  False  False   True
3  file4  False  False   True
5  file6  False  False   True
7  file8  False   True  False
8  file9  False  False   True
    file  prop1  prop2  prop3
2  file3  False  False  False
4  file5  False  False  False
6  file7  False  False  False

获取包含False的行

dd[~dd[['prop1','prop2','prop3']].any(axis=1)]
或使用:

输出:

    file  prop1  prop2  prop3
0  file1   True  False  False
1  file2  False  False   True
3  file4  False  False   True
5  file6  False  False   True
7  file8  False   True  False
8  file9  False  False   True
    file  prop1  prop2  prop3
2  file3  False  False  False
4  file5  False  False  False
6  file7  False  False  False
摩根定律的简单应用

获取不包含False的行

dd[~dd[['prop1','prop2','prop3']].any(axis=1)]
你需要

或使用:

输出:

    file  prop1  prop2  prop3
0  file1   True  False  False
1  file2  False  False   True
3  file4  False  False   True
5  file6  False  False   True
7  file8  False   True  False
8  file9  False  False   True
    file  prop1  prop2  prop3
2  file3  False  False  False
4  file5  False  False  False
6  file7  False  False  False

获取包含False的行

dd[~dd[['prop1','prop2','prop3']].any(axis=1)]
或使用:

输出:

    file  prop1  prop2  prop3
0  file1   True  False  False
1  file2  False  False   True
3  file4  False  False   True
5  file6  False  False   True
7  file8  False   True  False
8  file9  False  False   True
    file  prop1  prop2  prop3
2  file3  False  False  False
4  file5  False  False  False
6  file7  False  False  False
对于列表中具有列名称的每列,至少使用一个
True

mask = dd[['prop1','prop2','prop3']].any(axis=1)
或所有不带第一列的列:

mask = dd.iloc[:, 1:].any(axis=1)
或列名中带有
prop
的列:

mask = dd.filter(like='prop').any(axis=1)

如果需要删除行,请使用
~
反转布尔掩码:

df2 = dd[~mask]

print (df1)
    file  prop1  prop2  prop3
0  file1   True  False  False
1  file2  False  False   True
3  file4  False  False   True
5  file6  False  False   True
7  file8  False   True  False
8  file9  False  False   True

print (df2)
    file  prop1  prop2  prop3
2  file3  False  False  False
4  file5  False  False  False
6  file7  False  False  False
对于列表中具有列名称的每列,至少使用一个
True

mask = dd[['prop1','prop2','prop3']].any(axis=1)
或所有不带第一列的列:

mask = dd.iloc[:, 1:].any(axis=1)
或列名中带有
prop
的列:

mask = dd.filter(like='prop').any(axis=1)

如果需要删除行,请使用
~
反转布尔掩码:

df2 = dd[~mask]

print (df1)
    file  prop1  prop2  prop3
0  file1   True  False  False
1  file2  False  False   True
3  file4  False  False   True
5  file6  False  False   True
7  file8  False   True  False
8  file9  False  False   True

print (df2)
    file  prop1  prop2  prop3
2  file3  False  False  False
4  file5  False  False  False
6  file7  False  False  False

你能解释更多,为什么不删除
file1
?因为file1 prop1=true,我需要剪切prop1=false、prop2=false、prop3=false的文件你能解释更多,为什么不删除
file1
?因为file1 prop1=true,我需要剪切prop1=false、prop2=false、prop3=false的文件