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

如何在Pandas中获取DataFrame中重复次数最多的经纬度对

获取Pandas中重复次数最多的经纬度对

你现在遇到的问题是,groupby后得到的Series里,直接取第一个元素只能拿到重复次数,但想要对应的经纬度值对吧?其实很简单——因为这个Series的索引就是你分组的经纬度对,直接访问索引就能拿到啦!

直接获取的解决方案

先看最简洁的代码:

# 先得到按重复次数降序排列的结果
count_series = coords.groupby(['longs','lats']).size().sort_values(ascending=False)

# 取出重复次数最多的经纬度对
top_long, top_lat = count_series.index[0]

# 输出结果
print(f"重复次数最多的经纬度:\n经度(longs):{top_long}\n纬度(lats):{top_lat}\n重复次数:{count_series.iloc[0]}")

为什么这样能行?

你执行groupby(['longs','lats']).size()后,得到的是一个多级索引(MultiIndex)的Series:

  • 索引部分:每一组都是(longs值, lats值)的元组,对应你分组的经纬度对
  • 值部分:就是该经纬度对的重复次数

所以count_series.index[0]会直接返回第一个(也就是重复次数最高的)经纬度元组,把它解构到top_long和top_lat里,就能拿到你要的具体数值了。

要是想整理成DataFrame格式怎么办?

如果后续需要更方便的操作,也可以把结果转成DataFrame:

# 转成DataFrame并重命名计数列
count_df = count_series.reset_index().rename(columns={0: 'repeat_count'})

# 取第一行的经纬度和次数
top_record = count_df.iloc[0]
print(f"经度:{top_record['longs']}\n纬度:{top_record['lats']}\n重复次数:{top_record['repeat_count']}")

用你给出的示例数据,执行后会得到:

重复次数最多的经纬度:
经度(longs):43.345661
纬度(lats):-8.422813
重复次数:303

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:38:28