循环数据集并根据预定义区域对 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
我想根据预定义区域内的 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