在 Python 中过滤一些数据后从数据集中提取剩余数据

extract the remaining data from a dataset after filtering some data in Python

假设我有这样的数据框:

Length    Width    Height
 100       150      130
 120       140      150 
 200       170      120
 250       190      180
 270       200      195 

现在我想从三列中过滤数据,如果我像这样提取数据,则长度介于 (100-200) 之间,宽度介于 (130-170) 之间,高度介于 (120-150) 之间, 它会给我这样的数据框

Length    Width   Height
 100       150      130
 120       140      150 
 200       170      120

数据框中的剩余数据就像

   Length    Width   Height
     250       190      180
     270       200      195 

现在,我想在单独的变量中同时查看过滤后的数据和数据集中的剩余数据。如何在 python 中获取?

IIUC,使用布尔掩码组合多个 between&,索引差:

mask = (df['Length'].between(100,200)
      & df['Width'].between(130,170)
      & df['Height'].between(120,150)
       )
df1 = df[mask]
df2 = df.loc[df.index.difference(df1.index)]
# or
# df2 = df[~mask]

输出:

# df1
   Length  Width  Height
0     100    150     130
1     120    140     150
2     200    170     120

# df2
   Length  Width  Height
3     250    190     180
4     270    200     195