You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于DBSCAN聚类结果生成含簇面积与点数的DataFrame

解决方案

直接用Pandas的groupby结合聚合操作就能高效完成需求,这是最简洁的实现方式:

# 按簇分组,计算所需统计指标并生成面积列
cluster_metrics = df.groupby('cluster').agg(
    点数=('cluster', 'count'),
    纬度最小值=('lat', 'min'),
    纬度最大值=('lat', 'max'),
    经度最小值=('lon', 'min'),
    经度最大值=('lon', 'max')
).assign(面积=lambda x: (x['纬度最大值'] - x['纬度最小值']) * (x['经度最大值'] - x['经度最小值']))

# 若仅需最终的点数和面积,可筛选保留目标列
cluster_metrics = cluster_metrics[['点数', '面积']]

说明

  1. groupby('cluster'):按簇标签对数据分组
  2. agg():批量计算每个簇的核心统计量,其中count用于统计簇内的点数,min/max提取经纬度的极值
  3. assign():基于经纬度极值直接计算每个簇的面积,避免额外的循环操作

另外补充:你之前的cluster列赋值代码存在冗余循环,直接df['cluster'] = cluster_labels即可完成赋值(前提是cluster_labels长度与df一致)。

内容的提问来源于stack exchange,提问作者Stackoverflow Stackoverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:01:43