如何为pygeoda maxp_greedy()的聚类结果关联GeoDataFrame几何信息?
解决pygeoda maxp_greedy聚类结果关联几何数据的问题
你可以通过以下步骤将聚类ID与原GeoDataFrame的几何数据关联,生成目标格式的DataFrame:
实现步骤
- 提取聚类ID序列:从
maxp_clusters字典的'Clusters'字段中取出聚类ID元组,转换为列表。 - 关联到原始GeoDataFrame:为
gpd_table新增cluster_id列,赋值为提取出的聚类ID列表。 - 生成目标DataFrame:从
gpd_table中筛选cluster_id和geometry两列即可。
完整代码示例
import geopandas as gpd import pandas as pd import pygeoda # 读取原始矢量数据 gpd_table = gpd.read_file(r'...\test.shp') gda_table = pygeoda.open(gpd_table) # 准备聚类参数与数据 data = gda_table[["id", "p"]] bound_vals = gda_table["p"] min_bound = 81351.2 rook_w = pygeoda.rook_weights(gda_table) # 执行MAXP贪婪聚类 maxp_clusters = pygeoda.maxp_greedy(rook_w, data, bound_vals, min_bound, iterations=99) # 将聚类ID关联到原始GeoDataFrame cluster_ids = list(maxp_clusters['Clusters']) gpd_table['cluster_id'] = cluster_ids # 生成包含聚类ID和几何数据的目标DataFrame result_df = gpd_table[['cluster_id', 'geometry']] # 查看结果示例 print(result_df.head())
生成的result_df将完全匹配你期望的格式,每条记录对应一个点的聚类ID和几何信息。
内容的提问来源于stack exchange,提问作者J.Patordi
相关产品推荐
相关产品推荐

