使用python(pandas或geopandas)基于坐标合并点

时间:2018-04-23 11:11:33

标签: python pandas geopandas

我有一个像:

这样的数据集
pointID  lat  lon  otherinfo

我想要对坐标进行舍入,并将坐标变为相等的所有点聚合成一个单独的项,并为其指定一个新名称,该名称可能是一个新的数据帧列。 " otherinfo"必须保留列,这意味着在操作结束时,我将拥有与之前相同的行数,但使用基于舍入坐标的新ID。

如何使用熊猫实现这一目标?如果我使用geoPandas会更容易吗?

1 个答案:

答案 0 :(得分:1)

如果你已经有coodinates(lat和lon)的列,你可以这样做(舍入到2个十进制数字):

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

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