You need to enable JavaScript to run this app. Pandas MultiIndex DataFrame 按经纬度分组提取FFDI Top N行
优惠活动
大模型
产品
解决方案
定价
更多

Pandas MultiIndex DataFrame 按经纬度分组提取FFDI Top N行

实现方法

针对已全局按FFDI降序排序的大体积MultiIndex DataFrame,最高效的实现方式为直接按经纬度维度分组取每组前N行,适配当前6亿+行的数据规模。

核心代码

# 设置需要提取的排名阈值
N = 3

# 按经纬度两个索引层级分组,取每组前N行
# 用索引名分组可避免层级序号错位问题
result_df = df.groupby(level=["latitude", "longitude"], sort=False).head(N)

注意事项

  • 必须加sort=False参数:关闭分组结果的自动排序,大幅降低大数据量下的分组计算开销,同时保留原数据的行顺序
  • 无需额外排序逻辑:原DataFrame已全局按FFDI降序排列,分组后每个经纬度组的前N行天然对应组内FFDI最高的N条记录
  • 输出结果保留原MultiIndex结构,和预期格式完全一致

大体积数据优化

当前DataFrame仅保留FFDI、REF_ID两列,已经是最小列宽。groupby.head为pandas底层向量化实现,比apply类方法效率高1~2个数量级,若仍出现内存不足,可分块处理经纬度维度后合并结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 05:06:04