【发布时间】:2021-09-29 04:09:41
【问题描述】:
我有一个缓冲层和一个点层:
buffer_gdf
ID
0 1A
1 1B
2 1C
和
point_gdf
ID
0 1A
1 1A
2 1A
3 1A
4 1A
5 1B
6 1B
7 1B
8 1B
9 1B
10 1B
11 1B
12 1B
13 1B
14 1C
15 1C
16 1C
17 1C
18 1C
19 1C
20 1C
21 1C
22 1C
有没有办法计算在缓冲区 ID=1A 内有多少 ID=1A 的点,在缓冲区 ID=1B 内有多少 ID=1B 的点,在缓冲区 ID=1C 内有多少 ID=1C 的点,以及很快... 我有超过 20000 个缓冲区和超过 300000 个点。
我正在使用 pandas,但我也可以使用 R。
对不起,我没有提到某些点在缓冲区之外。我只需要缓冲区内的那些
【问题讨论】:
-
是
point_gdf['ID'].value_counts()你在找什么? -
@rhug123 不,因为有些点在缓冲区之外:(
-
buffer_gdf.join(point_gdf['ID'].value_counts(),on='ID',rsuffix = 'count'_)应该可以,但我还没有测试过。 -
你对 R 中的
data.table开放吗?如果是这样,我有一个强大的单线here:buffer_gdf[point_gdf, on = .(ID), nomatch = 0][, .N, by = ID],其中数据集是data.tables。