使用 python(pandas 或 geopandas)根据坐标合并点

Merging points based on coordinates using python (pandas or geopandas)

我有一个像这样的数据集:

pointID  lat  lon  otherinfo

我想对坐标进行四舍五入并将所有坐标相等的点聚合到一个项目中,并为其分配一个新名称,这可能是一个新的数据框列。 "otherinfo" 列必须保留,这意味着到操作结束时,我将拥有与之前相同的行数,但具有基于四舍五入坐标的新 ID。

如何使用 pandas 实现此目的?如果我使用 geoPandas 会更容易吗?

如果您已经有坐标列(纬度和经度),您可以这样做(四舍五入到 2 个小数):

df['new_id'] = df.groupby([df.lat.round(2), df.lon.round(2)]).ngroup()

groupby 上的 ngroup 方法为每个原始行给出了它所属的组,因此实际上为您提供了一个基于四舍五入的新的唯一 ID lat/lon。