在 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
假设我有这样的数据框:
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