Я пытаюсь завершить пространственное объединение двух GeodataFrames, но появляется эта ошибка:
ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat.
Это мой код / план, который привел меня к этой ошибке;
Два кадра данных имеют имена tag_df
и cpr_df
, которые содержат значения широты и долготы, поэтому я сначала создал геоданные для обоих;
tag_df['coordinates']=list(zip(tag_df.Longitude,tag_df.Latitude))
tag_df['coordinates']=tag_df['coordinates'].apply(Point)
tag_gdf=gpd.GeoDataFrame(tag_df,geometry='coordinates',crs={'init' :'epsg:4326'})
cpr_df['coordinates']=list(zip(cpr_df.sample_longitude_decimal,cpr_df.sample_latitude_decimal))
cpr_df['coordinates']=cpr_df['coordinates'].apply(Point)
cpr_gdf=gpd.GeoDataFrame(cpr_df,geometry='coordinates',crs={'init' :'epsg:4326'})
Затем я создал буфер на 5 морских миль для cpr_gdf
:
cpr_gdf['p_buffer']=cpr_gdf['coordinates'].buffer(5*(1/60))
Теперь я хочу выполнить пространственное объединение, чтобы найти, какие значения tag_gdf
и в каких буферизованных значениях cpr_gdf
;
tag_in_cpr=sjoin(tag_gdf,cpr_gdf,how='left',op='within')
Что приводит к этой ошибке:
ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat
Любая помощь будет отличной.