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

如何用pandas/NumPy提取DataFrame两列唯一位置对应的经纬度数据

Pandas 提取唯一位置对应经纬度的高效实现方案

直接通过统一结构拼接+去重即可实现,全程为pandas向量化操作,远快于手动拆分合并的方案,实现步骤如下:

  1. 先修正原始表的重复列名
    原始数据表存在两个Lat、两个Long的重复列名,先重命名避免后续操作冲突:
import pandas as pd
# 重命名列,明确区分起点、终点的经纬度
df.columns = ['Origin', 'Origin_Lat', 'Origin_Long', 'Destination', 'Dest_Lat', 'Dest_Long']
  1. 提取两组位置数据后拼接去重
    分别提取起点、终点的位置+经纬度信息,统一列名后拼接,直接去重即可得到结果:
# 提取起点侧数据
df_origin = df[['Origin', 'Origin_Lat', 'Origin_Long']].rename(
    columns={'Origin':'Unique Location', 'Origin_Lat':'Lat', 'Origin_Long':'Long'}
)
# 提取终点侧数据
df_dest = df[['Destination', 'Dest_Lat', 'Dest_Long']].rename(
    columns={'Destination':'Unique Location', 'Dest_Lat':'Lat', 'Dest_Long':'Long'}
)
# 拼接后去重、重置索引
result = pd.concat([df_origin, df_dest], ignore_index=True).drop_duplicates().reset_index(drop=True)
  1. 可选:脏数据校验
    如果存在同一个位置对应多组不同经纬度的情况,可以加一步校验排查问题:
# 按位置分组统计经纬度的唯一值数量
location_check = result.groupby('Unique Location')[['Lat', 'Long']].nunique()
if (location_check > 1).any(axis=None):
    print("存在同一位置匹配多个经纬度的异常数据,请核对原始表")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:15:01