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

如何计算DataFrame中各坐标点与基准点的距离?

计算DataFrame中每个坐标点与第一个点的测地线距离

你推测用geodesic是完全正确的,它能精准计算地球表面两点间的最短测地线距离,非常适合处理经纬度坐标数据。以下是具体实现步骤:

步骤1:安装依赖库

如果还没安装geopy,先执行安装命令:

pip install geopy

步骤2:完整代码实现

import pandas as pd
from geopy.distance import geodesic

# 模拟你的DataFrame(实际使用时替换成你的数据)
data = {
    'lat': [45.23, 45.265, 45.278],
    'lon': [81.3459, 81.346, 81.347],
    'time': ['2021-04-25 12:31:15', '2021-04-25 12:33:46', '2021-04-25 12:40:23']
}
df = pd.DataFrame(data)

# 获取第一个点的坐标
first_lat, first_lon = df.iloc[0]['lat'], df.iloc[0]['lon']
first_point = (first_lat, first_lon)

# 定义计算距离的函数
def get_distance(row):
    current_point = (row['lat'], row['lon'])
    # 返回公里数,可替换为.meters(米)或.miles(英里)
    return geodesic(first_point, current_point).kilometers

# 批量计算所有点到第一个点的距离
df['distance_to_first'] = df.apply(get_distance, axis=1)

# 查看结果
print(df)

关键说明

  • 效率优化:数千行数据用apply完全足够,geodesic的计算效率能轻松应对这个量级;如果数据量更大(比如百万级),可以考虑用向量化实现或者swifter库加速apply。
  • 单位选择:根据需求替换单位属性,比如.meters获取米级距离,.miles获取英里距离。
  • 坐标顺序:geodesic接受的参数是(纬度, 经度),和你的DataFrame列顺序一致,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:25:18