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的文件