Python 脚本计算 Excel 文件中两点距离并保存结果

假设原始 Excel 文件中,第一列为编号,第二列为第一个点的经度,第三列为第一个点的纬度,第四列为第二个点的经度,第五列为第二个点的纬度,需要根据这些信息计算两点之间的距离,并将结果保存到第六列。

可以使用以下代码实现:

import pandas as pd
from math import radians, sin, cos, sqrt, atan2

# 读取 Excel 文件
data = pd.read_excel('data.xlsx')

# 计算每个点之间的距离
def calculate_distance(row):
    # 将经纬度转换为弧度
    lat1, lon1, lat2, lon2 = map(radians, [row['lat1'], row['lon1'], row['lat2'], row['lon2']])
    # Haversine 公式计算距离
    dlon = lon2 - lon1 
    dlat = lat2 - lat1 
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    c = 2 * atan2(sqrt(a), sqrt(1-a))
    distance = 6371 * c * 1000 # 将距离转换为单位为米
    return distance

# 将计算结果保存在第六列
data['distance'] = data.apply(calculate_distance, axis=1)

# 将结果保存为新的 Excel 文件
data.to_excel('result.xlsx', index=False)

这个代码使用 Haversine 公式计算两个点之间的距离,并将结果保存在第六列中。同时,使用了 pandas 库来读取原始 Excel 文件并将结果保存为新的 Excel 文件。

步骤说明:

  1. 导入必要的库: pandas 库用于处理 Excel 文件,math 库提供了数学函数,如弧度转换、正弦、余弦等。
  2. 读取 Excel 文件: 使用 pd.read_excel() 函数读取原始 Excel 文件,并将其存储在 data 变量中。
  3. 定义 calculate_distance 函数: 该函数接受一行数据作为参数,并根据经纬度坐标计算两个点之间的距离。
  4. 将经纬度转换为弧度: 使用 map(radians, [row['lat1'], row['lon1'], row['lat2'], row['lon2']]) 将经纬度转换为弧度。
  5. 使用 Haversine 公式计算距离: Haversine 公式用于计算两个点之间的距离。
  6. 将距离转换为米: 将计算结果乘以 6371(地球半径,单位:公里)再乘以 1000,将距离转换为单位为米。
  7. 将计算结果保存在第六列: 使用 data['distance'] = data.apply(calculate_distance, axis=1) 将计算结果保存在新的一列 distance 中。
  8. 将结果保存为新的 Excel 文件: 使用 data.to_excel('result.xlsx', index=False) 将结果保存到名为 result.xlsx 的新 Excel 文件中,并去除索引。

注意:

  • 确保原始 Excel 文件名为 data.xlsx,并且包含经纬度数据。
  • 脚本运行后会生成名为 result.xlsx 的 Excel 文件,包含原始数据和计算出的距离。
  • 可以根据需要修改代码,例如修改输出文件名称、添加其他计算等。
Python 脚本计算 Excel 文件中两点距离并保存结果

原文地址: https://www.cveoy.top/t/topic/m0VJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录