Как я могу использовать sjoin для объединения двух GeoDataFrames без ошибки - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь завершить пространственное объединение двух 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

Любая помощь будет отличной.

...