循环数据集并根据预定义区域对 ID 的位置 (x,y) 进行分类

Loop over dataset and classify positions (x,y) of IDs according to a predefined area

我想根据预定义区域内的 x y 位置对我的“ID”进行分类,预定义为:

bottom_left = (500, 100) 
top_right = (700, 200)

我的 df 是这样的:

    date                    id  x   y
0   2022-02-28 18:46:18.640 5   573 16
1   2022-02-28 18:46:18.902 5   585 43
2   2022-02-28 18:46:19.113 5   596 76
3   2022-02-28 18:46:19.360 5   609 107
4   2022-02-28 18:46:19.593 5   612 142
5   2022-02-28 18:46:19.839 5   619 178
6   2022-02-28 18:46:20.070 5   619 207
7   2022-02-28 18:46:20.312 5   619 238
8   2022-02-28 18:46:20.548 5   619 270
9   2022-02-28 18:46:20.790 5   615 295

如何创建新列“区域”,0=我所在区域的 ID,1=我所在区域外的 ID。

非常感谢任何帮助。

使用:

(x0, y0), (x1, y1) = bottom_left, top_right
df['zone'] = (df['x'].between(x0, x1) & df['y'].between(y0, y1)).astype(int)
print(df)

# Output
                      date  id    x    y  zone
0  2022-02-28 18:46:18.640   5  573   16     0
1  2022-02-28 18:46:18.902   5  585   43     0
2  2022-02-28 18:46:19.113   5  596   76     0
3  2022-02-28 18:46:19.360   5  609  107     1
4  2022-02-28 18:46:19.593   5  612  142     1
5  2022-02-28 18:46:19.839   5  619  178     1
6  2022-02-28 18:46:20.070   5  619  207     0
7  2022-02-28 18:46:20.312   5  619  238     0
8  2022-02-28 18:46:20.548   5  619  270     0
9  2022-02-28 18:46:20.790   5  615  295     0