如何使用字段中的nereast值将pandas数据帧与geopandas连接
我有一个geopdans数据框,它有一个名为“values”的列。我有一个pandas数据框架,它也有一个名为“values”的列。两个数据帧中的列值不完全相同;我想根据geopnadas数据帧的最近值加入它们 这是我打算实现的一个最小示例,我有一个geopadans数据框,其中有一列“值”: 我还有一个pandas数据框,其中包含值列,例如:如何使用字段中的nereast值将pandas数据帧与geopandas连接,pandas,merge,geopandas,Pandas,Merge,Geopandas,我有一个geopdans数据框,它有一个名为“values”的列。我有一个pandas数据框架,它也有一个名为“values”的列。两个数据帧中的列值不完全相同;我想根据geopnadas数据帧的最近值加入它们 这是我打算实现的一个最小示例,我有一个geopadans数据框,其中有一列“值”: 我还有一个pandas数据框,其中包含值列,例如: values color 0 300.00 green 1 500.00 blue 最后,我希望有
values color
0 300.00 green
1 500.00 blue
最后,我希望有一个geopandas数据框,将颜色列链接到geopandas数据框中最近的值:
S_1_OBJECT values OBJECTID Shape_Leng Shape_Area color\
0 3541.0 325.5626 1 0.020833 0.000017 green
1 3544.0 314.5491 2 0.029167 0.000026 green
2 3545.0 551.1674 3 0.035000 0.000034 blue
geometry
0 POLYGON ((-115.6041666669581 50.96666666593393...
1 (POLYGON ((-115.6 50.96666666593393, -115.6 50...
2 (POLYGON ((-115.6 50.96249999897583, -115.6 50...
我已经检查了熊猫合并,但似乎没有这样的功能。我也尝试过:
shp\u out=pandas.merge\u asof(geopandasdataframe,pandasdataframe,on='values',direction='nearest')
但是后来我无法使用shp_out.to_json()将shp_out转换为json字符串。问题来自
pandas.merge_asof
在geopadnas.GeoDataFrame
上完成。它可以工作,但在生成的GeoDataFrame上没有指定几何体,该几何体随后会断开。\u json()
。您只需在merge\u asof
之后指定几何体列即可修复它
shp_out = shp_out.set_geometry('geometry')
然后您应该能够通过shp\u out.to\u json()
获取geojson
编辑:它也会丢失CRS,所以我建议将其设置回原来的状态
shp_out.crs = geopandasdataframe.crs
你能给我们看一下数据并试着提供一个简单的例子吗?增加了一个我想实现的简单例子。
shp_out.crs = geopandasdataframe.crs