如何用Python替代Mapinfo更快查找两张表中距离最近的点
发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,本篇文章给大家分享的是有关如何用Python替代Mapinfo更快查找两张表中距离最近的点,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
千家信息网最后更新 2025年11月19日如何用Python替代Mapinfo更快查找两张表中距离最近的点
本篇文章给大家分享的是有关如何用Python替代Mapinfo更快查找两张表中距离最近的点,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
一、前言
工作中有时需要把A表中的经纬度点,从B表中匹配一个最近的点出来,用Mapinfo也可以实现,但处理速度慢,特别是数据量大时根本处理不动,此时用Python就能轻松实现,还能显示处理进度,详细如下。
二、项目目标
用Python实现两张表间最近点的计算。
三、项目准备
软件:PyCharm
需要的库:pandas, xlrd,os
四、项目分析
1)如何选择并读取要处理的Excel文件?
利用os、xlrd,选择要读取处理的Excel文件。
2)如何计算两个经纬度点的距离?
利用pandas库读取两张表的内容,再定义函数计算两个经纬度点的距离。
3)如何循环计算并保存最近一个点的数据?
利用For循环,对两张表的内容进行循环读取,通过If判断保留最近的距离点数据。
4)如何保存结果?
利用to_excel保存,得到最近点的数据。
五、项目实现
1、第一步导入需要的库
import pandas as pd import xlrd import os
2、第二步选择并读取要处理的Excel文件
path="D:/a/" #获取文件夹下所有EXCEL名 bb = path + 'result.xlsx' writer = pd.ExcelWriter(bb,engine='openpyxl') xlsx_names = [x for x in os.listdir(path) if x.endswith(".xlsx")] # 获取第一个EXCEL名 xlsx_names1 = xlsx_names[0] aa = path + xlsx_names1 #打开第一个EXCEL first_file_fh=xlrd.open_workbook(aa) # 获取SHEET名 first_file_sheet=first_file_fh.sheets()3、第三步循环计算并保存最近一个点的数据
for i in range(h2): w1=df1.loc[i,'纬度'] j1 = df1.loc[i,'经度'] d1 = df1.loc[i, :] d0=10000000000000000000000000.0000 print("原小区第%d个。" %(i+1)) test_dict = {'距离': [d0]} d3 = pd.DataFrame(test_dict) for l in range(h3): w2=df2.loc[l, '纬度'] j2=df2.loc[l,'经度'] d=haversine(j1, w1, j2, w2) if d4、第四步保存计算后的文件
resultdata1.to_excel(excel_writer=writer, sheet_name='原小区', encoding="utf-8", index=False) resultdata2.to_excel(excel_writer=writer, sheet_name='最近小区', encoding="utf-8", index=False) resultdata3.to_excel(excel_writer=writer, sheet_name='距离', encoding="utf-8", index=False) writer.save() writer.close()
六、效果展示
1、处理前数据:
2、处理进度显示:
3、处理结果:
利用Python计算两个经纬度点间的距离,并在两张表间进行最近点计算,这本来是Mapinfo的分内之事,但数据量大时就处理不动了,Python处理速度快,还能对数据进行预处理,正是由于可以自己优化代码,可以无限提高运行速度,比如数据切块处理,有兴趣的同学可以进一步研究下。
以上就是如何用Python替代Mapinfo更快查找两张表中距离最近的点,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
处理
数据
文件
经纬
经纬度
项目
循环
两个
小区
速度
utf-8
选择
中距离
更快
内容
更多
知识
篇文章
纬度
经度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
英语单词打卡软件开发
什么是网络安全趋势
公安网络安全学习简报
企业网络安全保密标语
提高网络安全观后感
alert在数据库的意思
松江区网络营销软件开发价格实惠
计算机网络技术员比赛
广西新新网络技术有限公司
我的世界怎么搞电脑版服务器
理正勘察的数据库文件在哪
互联网软件开发要多少钱
数据库出现jit是什么意思
网站开发与数据库
数据库自增id sql
全球最大的并购数据库
网络安全我的体会
软件开发的品牌广告
服务器出流量
天行的服务器地址
驾校网络安全保密协议书
网络安全风险隐患排查记录
云原生20核服务器
交换机查看ntp服务器
数据库应用和数据库一样吗
网络安全宣传周新闻联播
专业性软件开发售后保障
江苏省信息化建设网络安全规定
免费用中指数据库土地版
电视芯片软件开发技术